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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    js数组对象push重复
    159
    0
    this.form = res.data.data.records[0];this.form.inventoryWorkSubunitList.forEach((el) => { var data = {}; if (el.assetSn == qr) { el.physicalInventory = 1; alert(1); return; } else { alert(2); getAssetBook({ assetSn: qr }).then((res1) => { if (res1.data.code == 200) { data.assetName = res1.data.data.assetName; data.assetSn = res1.data.data.assetSn; data.model = res1.data.data.model; data.location = res1.data.data.location; data.unit = res1.data.data.unit; data.amount = 0; data.assetType = res1.data.data.assetType; data.assetBrand = res1.data.data.assetBrand; data.whomBelongs = res1.data.data.whomBelongs; data.purchaseAmount = res1.data.data.purchaseAmount; data.physicalInventory = 1; this.form.inventoryWorkSubunitList.push(data); } }); }});本来this.form.inventoryWorkSubunitList就有值,else情况时,这样一循环就会重复push,怎么解决
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 逍遥云飞 普通会员 1楼

      在JavaScript中,数组对象是不能直接push重复元素的,因为数组是一种不可变数据结构。但是,你可以使用一些方法来解决这个问题。

      一种常见的方法是使用Set,Set是JavaScript的一个数据结构,其中的每个元素都是唯一的。你可以使用Set来删除重复的元素,并将它们添加到新的数组中。

      例如:

      javascript let array = [1, 2, 3, 4, 5]; let uniqueArray = [...new Set(array)]; console.log(uniqueArray); // 输出:[1, 2, 3, 4, 5]

      另一种方法是使用数组的map和filter方法。首先,使用map方法创建一个新的数组,其中的每个元素都是原数组元素的副本。然后,使用filter方法删除重复的元素,并将它们添加到新的数组中。

      例如:

      javascript let array = [1, 2, 3, 4, 5]; let uniqueArray = [...new Set(array)]; console.log(uniqueArray); // 输出:[1, 2, 3, 4, 5]

      这两种方法都可以有效地解决数组对象push重复的问题。

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