我不得不使用不同的阵列。例如:
数组1是:
[536, 549]
数组2是:
[
{ text: "ABCD", value: 341 },
{ text: "WXYZ", value: 439 }
]
我想创建一个对象:
[
{
fieldId: 536,
value: {
value: 341,
display_value: "ABCD"
}
},
{
fieldId: 549,
value: {
value: 439,
display_value: "WXYZ"
}
}
]
我不知道该怎么做。提前致谢。 :)
答案 0 :(得分:2)
const arr_1 = [536, 549]
const arr_2 = [{text: "ABCD", value: 341},{text: "WXYZ", value: 439}]
// with map
let new_arr = arr_2.map( (ele, index) => {
return {
fieldID: arr_1[index],
value: { value: ele.value, display_value: ele.text }
};
});
// with for loop
let new_arr2 = [];
for(let i = 0; i < arr_2.length; i++){
new_arr2.append({
fieldID: arr_1[i],
value: { value: arr_1[i].value, display_value: arr_1[i].text }
});
}
map()的文档: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
数组的文档: https://developer.mozilla.org/en-US/docs/Glossary/array
对象的文档: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Object
不确定是否需要将数字作为字符串。您必须使用toString()
。也不确定它到底应该是一个json字符串,以便使用JSON.stringify()
答案 1 :(得分:0)
const arr1 = [ 536, 549 ];
const arr2 = [
{ text: "ABCD", value: 341 },
{ text: "WXYZ", value: 439 }
];
const result = arr1.map((value, index) => ({
fieldId: value,
value: {
display_value: arr2[index].text,
value: arr2[index].value
}
}));
此处,result
将保留所需的值。