如何解决如果每个键都有一个数字数组,如何搜索和替换对象属性值? Javascript
const obj = {
line1: [2,13,7,6,14],line2: [25,16,24,27,28],line3: [41,31,32,44,42],};
我们如何搜索特定号码并将其替换为另一个号码?
假设我们想找到数字 44 并将其替换为 88?以现代 JS 方式...
解决方法
您可以使用循环对对象的每个键值对进行迭代,然后您可以在数组中找到并替换您想要的数字。请记住,如果数字可以在同一个数组中多次出现,您也必须在数组上循环,否则您可以使用 indexOf 并分配新值。
这是一个例子:
const obj = {
line1: [2,13,7,6,14],line2: [25,16,24,27,28],line3: [41,31,32,44,42],};
const changeNumber = (oldNum,newNum,obj) => {
for (const [key,arr] of Object.entries(obj)) {
const index = arr.indexOf(oldNum);
if (index > -1) {
arr[index] = newNum;
}
}
}
console.log(obj); // Before
changeNumber(44,88,obj);
console.log(obj); // After
/* With duplicates entries */
const changeNumberDuplicate = (oldNum,arr] of Object.entries(obj)) {
let index = 0;
do {
index = arr.indexOf(oldNum,index);
if (index > -1) {
arr[index] = newNum;
}
} while (index > -1);
}
}
const objDup = {
line1: [2,44],line2: [44,};
console.log(objDup); // Before
changeNumberDuplicate(44,objDup);
console.log(objDup); // After
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。