账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何实现js二维数组去重, 将当前的属性值移到另外的对象中?
    31
    0

    `

    // 判断name的值是否有重复, 重复则去重, 把value的值放到相同name的value数组中
    let arr = [{
      name: '床',
      value: ['床板']
    }, {
      name: '衣柜',
      value: ['衣布']
    }, {
      name: '床',
      value: ['模板']
    }]
    
    // 实际想要的效果
    // let arr = [{
    //  name: '床',
    //  value: ['床板', '模板']
    // }, {
    //  name: '衣柜',
    //  value: ['衣布']
    // }]

    `

    `

    // 自己的思路是循环数组, 判断name的值是否相等, 相等则将当前的值push到新的数组当中
    for (let index = 0; index < arr.length; index++) {
      if (arr[i].name) {
    
      }
    }

    `

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 在JavaScript中,你可以使用以下方法实现二维数组去重并将当前属性值移到另一个对象中:

      1. 首先,我们需要创建一个二维数组,其中每个元素是一个对象,其中包含一个名为id的属性和一个名为value的属性。

      javascript const arr = [ { id: 1, value: 'a' }, { id: 2, value: 'a' }, { id: 3, value: 'b' }, { id: 4, value: 'a' }, { id: 5, value: 'c' }, { id: 6, value: 'a' } ];

      1. 然后,我们可以创建一个空对象result,用于存储去重后的结果。遍历二维数组,对于每个元素,我们检查它是否已经在result对象中。如果是,我们将value属性添加到result对象中,否则我们将value属性添加到新对象中,并将id属性设置为元素的id

      ```javascript let result = {};

      arr.forEach((item) => { if (result[item.id]) { result[item.id].value += item.value; } else { result[item.id] = { id: item.id, value: item.value }; } }); ```

      1. 最后,我们可以遍历result对象,打印出去重后的结果。这里我们只是打印出idvalue属性的值,如果你想打印出idvalue属性的键,你可以使用Object.entries()方法。

      javascript result.forEach(([id, value]) => { console.log(`id: ${id}, value: ${value}`); });

      这将输出:

      id: 1, value: a id: 2, value: a id: 3, value: b id: 4, value: a id: 5, value: c id: 6, value: a

      这样,我们就实现了二维数组去重并将当前属性值移到另一个对象中的功能。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部