为了账号安全,请及时绑定邮箱和手机立即绑定

将2个数组转换为键值对象javascript

将2个数组转换为键值对象javascript

慕田峪4524236 2022-06-05 15:46:29
我有一个带有标题的数组 - 比如说["language", "name", "code"] 和一个值数组的数组 - 例如 [["English", "Matt", "2D"], ["Croatian", "Dana", "8S"], ["Russian", "Ivan", "2W"]]。我正在尝试获取对象数组,如下所示:[   {language: English, name: Matt, code: 2D},   {language: Croatian, name: Dana, code: 8S},   {language: Russian, name: Ivan, code: 2W} ]没有嵌套for循环的任何优雅方法?
查看完整描述

3 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

let props=["language", "name", "code"];

let data=[["English", "Matt", "2D"], ["Croatian", "Dana", "8S"], ["Russian", "Ivan", "2W"]];

let result=data.map( (innerArray) =>{let obj={};innerArray.forEach( (innerData,index) =>{obj[props[index]]=innerData;});return obj;

});

console.log(result);


查看完整回答
反对 回复 2022-06-05
?
杨魅力

TA贡献1811条经验 获得超6个赞

const props = ["language", "name", "code"];

const values = [["English", "Matt", "2D"], ["Croatian", "Dana", "8S"], ["Russian", "Ivan", "2W"]];

const formatted = values.map(value => ({

  [props[0]]: value[0],

  [props[1]]: value[1],

  [props[2]]: value[2],

}));

或者像这样:


const formatted4 = values.map(value => {

  let v = {};

  props.forEach((prop, i) => {

    v = {

      ...v,

      [prop]: value[i]

    }

  });

  return v;

});


查看完整回答
反对 回复 2022-06-05
?
catspeake

TA贡献1111条经验 获得超0个赞

您可以使用数组解构(假设您确定数据格式保持不变):


const newArr = [];

for(const [language, name, code] of yourDataArray){

  //do whatever you want with the variables language, name, code

  newArr.push({

    language: language,

    name: name,

    code: code

  })

}



查看完整回答
反对 回复 2022-06-05
  • 3 回答
  • 0 关注
  • 117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号