javascript - 搜索另一个对象数组中的值列表,并使用单个 for 循环更改对象数组中的一个键
问题描述
如果 empId 可用,我想更改 emps 中的“选定”键值。我使用两个 for 循环尝试了以下逻辑。我正在尝试使用单个 for 循环的逻辑,但它不起作用。任何人都对单个 for 循环逻辑有一些想法。请给出一些示例逻辑。
以下是数组值和对象数组的示例格式
// values in list are dynamic
empIds = [1,3];
// object values in array are dynamic
emps = [{
id: 1,
name:'test1',
selected: false
},
{
id: 2,
name:'test2',
selected: false
},
{
id: 3,
name:'test3',
selected: false
}];
// logic
for (var i = 0; i< empIds.length; i++) {
for (var j = 0; j< emps.length; j++) {
if (empIds[i] === emps[j].id) {
emps[j].selected = true;
} else {
emps[j].selected = false;
}
}
}
解决方案
简单的 forEach 并包含
const empIds = [1, 3];
// object values in array are dynamic
const emps = [{
id: 1,
name: 'test1',
selected: false
},
{
id: 2,
name: 'test2',
selected: false
},
{
id: 3,
name: 'test3',
selected: false
}
];
emps.forEach(e => e.selected = empIds.includes(e.id));
console.log(emps);
推荐阅读
- python-3.x - Zabbix API 3.4 - 由于循环要求而无法创建主机
- bash - 子shell进程无法访问父shell中定义的变量和函数
- ember.js - 如何在使用 Ember.set 设置之前修剪数据
- javascript - Firebase storage.object().onChange 现在已弃用,
- runtime-error - 如何在 Perl 中导致“无法刷新标准输出:管道损坏”?
- javascript - 尝试添加自定义 Flaticon 图标
- javascript - 不敏感的事件计数器 - JS
- flutter - Flutter 使用继承的小部件和 Navigator 返回 NoSuchMethodError
- python - (最简单)在同一台计算机上使用 Python 3.6 和 3.7 的方法?
- geojson - Mapbox GL JS:实时 geoJSON 覆盖