从两个不同的数组创建一个对象数组

时间:2017-12-16 13:46:05

标签: javascript

我不得不使用不同的阵列。例如:

数组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"
        }
    }
]

我不知道该怎么做。提前致谢。 :)

2 个答案:

答案 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将保留所需的值。