javascript - 将两个多维数组合并为一个带对象的多维数组
问题描述
我正在学习新的 JavaScript ES6 语法,并尝试使用来自其他 2 个多维数组的对象创建一个多维数组。大概我的语法不正确,但我不知道如何修复它。结果应该是:
[
[{ letter: w, instances: 1
}, { letter: o, instances: 1
}, { letter: d, instances: 2
}, { letter: r, instances: 1
}],
[{ letter: s, instances: 1
}, { letter: y, instances: 1
}],
[{ letter: h, instances: 1
}, { letter: e, instances: 1
}, { letter: l, instances: 2
}, { letter: o, instances: 1
}]
]
我的代码使用了两种地图方法:
var letters = [
["w", "o", "d", "r"],
["s", "y"],
["h", "e", "l", "o"]
];
var numbers = [
[1, 1, 2, 1],
[1, 1][1, 1, 2, 1]
];
var objArr = letters.map(function(c, i) {
return c.map(function(c2, i2, a2) {
return {
letter: c2,
instances: numbers[i]
}
})
});
console.log(objArr);
它正确返回包含对象和正确字母值的多维数组,但数值不正确。谁能找到为什么会这样?另外,有没有人认为有更好的方法来存储字母和数字的数量?
解决方案
instances:
请参阅下面的一个非常小的错误
var letters = [["w", "o", "d", "r"],["s", "y"],["h", "e", "l", "o"]];
var numbers = [[1,1,2,1],[1,1], [1,1,2,1]];
var objArr = letters.map(function(c,i) {
return c.map(function(c2,i2) {
return {letter: c2, instances: numbers[i][i2]}
})
});
console.log(objArr)
推荐阅读
- angularjs - 如何设置条件,以便在第一次和第二次鼠标点击之间有一个不大于 500 毫升的延迟
- c# - C#“全部刷新”并忽略使用 Microsoft Office 365 Excel 的隐私问题
- node.js - React npm warn 弃用了如何处理?
- javascript - 为什么 CSS font-size 更改会稍微删除文本?
- google-apps-script - 无法将谷歌云平台默认项目更改为标准
- python - 路径应该是字符串、字节或 os.PathLike,而不是 InMemoryUploadedFile
- vue.js - 在 vue 项目中更改 package.json 以进行自定义构建模式
- firebase - React Native:使用“refFromURL”从firebase中删除图像
- flutter - 导航栏不会出现在所有屏幕上
- vue.js - 无法安装 vuemdb