如果我需要将两个数组(内容和ID)合并到一个数组中(合并)。
第一个数组:
let content = [
{ "Name": "Max Mustermann" },
{ "Name": "Berta Beispiel" },
{ "Name": "Zacharias Zufall" }
]
第二个数组:
let ids = [
"12345678-1",
"12345678-2",
"12345678-3"
]
应该结合起来的样子:
let combined = [
{
"Name": "Max Mustermann",
"id": "12345678-1"
},
{
"Name": "Berta Beispiel",
"id": "12345678-2"
},
{
"Name": "Zacharias Zufall",
"id": "12345678-3"
}
]
我尝试了与push,reduce,map等不同的方法,但是没有任何效果::(
答案 0 :(得分:3)
它应该起作用:
let content = [
{ "Name": "Max Mustermann" },
{ "Name": "Berta Beispiel" },
{ "Name": "Zacharias Zufall" }
]
let ids = [
"12345678-1",
"12345678-2",
"12345678-3"
]
let combined = content.map((cnt, index) => {
let idPart = {
id: ids[index],
};
return {...cnt, ...idPart};
});
// Short version:
/*
let combined = content.map((c, i) => ({id: ids[i], ...c}));
*/
答案 1 :(得分:2)
根据您的需求,可以像这样简单地进行操作。注意:它将修改原始的content
数组。
let content = [
{ "Name": "Max Mustermann" },
{ "Name": "Berta Beispiel" },
{ "Name": "Zacharias Zufall" }
]
let ids = [
"12345678-1",
"12345678-2",
"12345678-3"
];
for(let i=0;i<content.length;i++) {
content[i].id = ids[i] || null;
}
console.log(content);
如果您需要从两者创建新对象+新数组,则可以使用
const content = [
{ "Name": "Max Mustermann" },
{ "Name": "Berta Beispiel" },
{ "Name": "Zacharias Zufall" }
]
const ids = [
"12345678-1",
"12345678-2",
"12345678-3"
];
const merged = content.map((c, index) => ({id: ids[index] || null, ...c}));
console.log(merged);
这确实取决于您和情况的具体情况。
如果我没有在Javascript中提到let
和const
之间关于数组或对象的区别有点混乱,我会觉得自己没有履行职责。 / p>
以下是带有const
声明的完全有效的JS:
const items = [];
items.push(1,2,3);
console.log(items); // 1, 2, 3
这是因为const
指的是一些更复杂的信息,您可以在对语言本身有了更多了解后才能查找它们。但是,将来,在确定是否应使用const
或let
时,您需要问自己的基本事情是:
我是否需要在某个时候完全重新分配变量?例如
arr = [1,2,3];
/// code later on;
arr = [5,6,7];
如果是,请使用let
。但是,如果您的代码看起来更像
arr = [1,2,3];
// other stuff
arr.push(4,5,6);
arr.pop();
arr.sort((a,b) => a-b);
那么您可能可以使用const
。
我知道这不是最好的说明,但是由于我不了解您的编程知识水平,因此深入讨论可能会引起更多的混乱。