javascript - 嵌套数组操作

标签 javascript arrays object multidimensional-array javascript-objects

我有以下两个数组:

var val = [['aa', 'ab', 'ac'], ['bb', 'bc', 'bd']];
var key = ['item1', 'item2', 'item3'];

通过使用任何 javascript 逻辑,我想获得以下格式的新数组。

[
  {item1: 'aa', item2: 'ab', item3: 'ac'},
  {item1: 'bb', item2: 'bc', item3: 'bd'}
]

我尝试使用 .forEach 和 .map() 来实现这一点,但不知何故我做不到。

这是我试过的示例代码。 https://plnkr.co/edit/oKyjNsBu3wrRin7TaCIb?p=preview

var val = [['aa', 'ab', 'ac'], ['bb', 'bc', 'bd']];
var key = ['item1', 'item2', 'item3'];
var newArr = val.map((elm,i)=>{
  return {[key[i]]: elm[i]}
})
console.log('newArr', newArr);

我需要如下输出。

[
  {item1: 'aa', item2: 'ab', item3: 'ac'},
  {item1: 'bb', item2: 'bc', item3: 'bd'}
]

最佳答案

您可以使用 .map().reduce()获得所需输出的方法:

const vals = [['aa','ab','ac'],['bb','bc','bd']];
const keys = ['item1','item2','item3'];

const result = vals.map((val) => keys.reduce((r, c, i) => (r[c] = val[i], r), {}));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 嵌套数组操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57802660/

相关文章:

javascript - 在nodejs中使用cv.readImage()和流

javascript - 是否可以通过 Javascript 访问 %-width 元素的当前缩放因子而不会导致回流?

javascript - Backbone JS 点击事件处理程序不起作用

java - 水果射击游戏试图结束

javascript - "(.....);"和 "{......}"在 react 中有什么区别?

javascript - Dialogflow 复合实体参数在不应定义时未定义

ios - JSON 到数组的转换

html - ngFor - 按索引打印数组项

Javascript 返回并映射到一个对象

javascript - 如何在对象中获取该值?