如何将响应对象映射到 JavaScript 中的对象数组?
How to map the response object to array of objects in JavaScript?
我希望通过 运行 两个不同的循环将我的响应对象之一映射到现有的对象数组,如果在对象中找不到匹配的键,我无法以某种方式删除该值.
如果键不匹配,有什么方法可以使值变为 null 吗?
我试过以下方法:
const data = {
test1: 1,
test2: 2
};
const val = [
{
id: 'test1',
val: 2222
},
{
id: 'test2',
val: 5555
},
{
id: 'test3',
val: 4444
}
];
val.forEach(element => {
Object.entries(data).forEach(([key, value]) => {
if (element.id === key) {
element.val = value;
}
});
});
console.log(val);
// output:
// const val = [
// {
// id: 'test1',
// val: 1
// },
// {
// id: 'test2',
// val: 2
// },
// {
// id: 'test3',
// val: ""
// }
// ];
你不需要循环。只需检查 属性 是否存在。
const data = {
test1: 1,
test2: 2
};
const val = [{
id: 'test1',
val: 2222
},
{
id: 'test2',
val: 5555
},
{
id: 'test3',
val: 4444
}
];
val.forEach(element => {
if (data.hasOwnProperty(element.id)) {
element.val = data[element.id];
} else {
element.val = "";
}
});
console.log(val);
我希望通过 运行 两个不同的循环将我的响应对象之一映射到现有的对象数组,如果在对象中找不到匹配的键,我无法以某种方式删除该值.
如果键不匹配,有什么方法可以使值变为 null 吗?
我试过以下方法:
const data = {
test1: 1,
test2: 2
};
const val = [
{
id: 'test1',
val: 2222
},
{
id: 'test2',
val: 5555
},
{
id: 'test3',
val: 4444
}
];
val.forEach(element => {
Object.entries(data).forEach(([key, value]) => {
if (element.id === key) {
element.val = value;
}
});
});
console.log(val);
// output:
// const val = [
// {
// id: 'test1',
// val: 1
// },
// {
// id: 'test2',
// val: 2
// },
// {
// id: 'test3',
// val: ""
// }
// ];
你不需要循环。只需检查 属性 是否存在。
const data = {
test1: 1,
test2: 2
};
const val = [{
id: 'test1',
val: 2222
},
{
id: 'test2',
val: 5555
},
{
id: 'test3',
val: 4444
}
];
val.forEach(element => {
if (data.hasOwnProperty(element.id)) {
element.val = data[element.id];
} else {
element.val = "";
}
});
console.log(val);