我想做这样的事情:
const foo = ['aba', 'bab'];
const bar = [1, 2];
然后创建这个数组:
result = [
{
text: foo[0]
number: bar[0]
},
{
text: foo[1]
number: bar[1]
}
]
Foo和bar的长度相同。
答案 0 :(得分:3)
如果您的数组具有相同的长度,则可以使用Array#map迭代每个项,获取项和索引然后创建新的对象数组,将文本设置为项目,将数字设置为bar[index]
。
const foo = ['aba', 'bab'];
const bar = [1, 2];
const mapped = foo.map((item, index) => ({text: item, number: bar[index]}));
console.log(mapped);

答案 1 :(得分:1)
我只是映射其中一个数组,并使用映射函数的第二个参数index来获取另一个参数的值:
var result = foo.map((value, index) => ({
text: value, number: bar[index],
}));
答案 2 :(得分:0)
简单的解决方案
let result = [] ;
const foo = ['aba','bab']
const bar = [1,2]
for(let i = 0 ; i<foo.length;i++){
result[i]={}
result[i].text = foo[i] ;
result[i].number = bar[i];
}
console.log(result) ;
答案 3 :(得分:0)
假设长度始终相同,您可以这样做:
var foo = ['aba','bab']
var bar = [1,2]
function makeObjects(f, b) {
return foo.map((o, i) => ({text: f[i], number: bar[i]}))
}
console.log(makeObjects(foo, bar))
// [{text: 'aba', number: 1}, {text: 'bab', number: 2}]
答案 4 :(得分:0)
var foo = ['aba','bab'];
var bar = [1,2];
var result = [];
function a(){
for(var i=0;i<foo.length;i++){
result[i] = { text: foo[i], number:bar[i]};
}
console.log(result);
}
这就是你要找的东西吗?