如何解决如何将响应对象映射到 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);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。