簡體   English   中英

如何將具有n個元素的2個數組合並為具有n個對象的1個數組?

[英]How to merge 2 arrays with n elements into 1 array with n objects?

我想做這樣的事情:

const foo = ['aba', 'bab'];
const bar = [1, 2];

然后創建此數組:

result = [
{
  text: foo[0]
  number: bar[0]
},
{
  text: foo[1]
  number: bar[1]
}
]  

Foo和bar的長度相等。

如果數組的長度相同,則可以使用Array#map遍歷每個項目 ,獲取項目索引 ,然后創建新的對象數組,將文本設置為item ,將數字設置bar[index]

 const foo = ['aba', 'bab']; const bar = [1, 2]; const mapped = foo.map((item, index) => ({text: item, number: bar[index]})); console.log(mapped); 

我將簡單地映射一個數組,並使用映射函數的第二個參數index來獲取另一個的值:

var result = foo.map((value, index) => ({
     text: value, number: bar[index],
}));

簡單的溶蛋白

 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) ; 

假設長度始終相同,則可以執行以下操作:

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}]
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);
}

這是你想要的?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM