如何为数组中的值添加key

arr1:
[
    {"id":"1","keyname":"颜色"},
    {"id":"2","keyname":"型号"}
]

arr2:
[
    ["白色","测试一"],
    ["白色","测试二"],
    ["红色","测试一"],
    ["红色","测试二"]
]

我想为arr2中的值添加key,key用的是arr1中的,得到以下结果该怎么处理:
arr3:
[
    {"颜色":"白色","型号":"测试一"},
    {"颜色":"白色","型号":"测试二"},
    {"颜色":"红色","型号":"测试一"},
    {"颜色":"红色","型号":"测试二"}
]
再给arr3添加新的属性和值得到最终:
arr4:
[
    {"颜色":"白色","型号":"测试一","测试key":"测试值"},
    {"颜色":"白色","型号":"测试二","测试key":"测试值"},
    {"颜色":"红色","型号":"测试一","测试key":"测试值"},
    {"颜色":"红色","型号":"测试二","测试key":"测试值"}
]
阅读 4.7k
2 个回答
function map(array, keys) {
    var ret = [];
    for (var i = 0; i < array.length; ++i) {
        var obj = {};
        obj[keys[0].keyname] = array[i][0];
        obj[keys[1].keyname] = array[i][1];
        obj["测试key"] = "测试值";
        ret.push(obj);
    }
    return ret;
}
console.log(map(arr2, arr1));
const arr3 = arr2.map(data => {
  return arr1.reduce((result, item) => {
    if (data[item.id - 1]) {
      result[item.keyname] = data[item.id - 1];
    }
    return result;
  }, {});
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题