微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果每个键都有一个数字数组,如何搜索和替换对象属性值? Javascript

如何解决如果每个键都有一个数字数组,如何搜索和替换对象属性值? 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 举报,一经查实,本站将立刻删除。