簡體   English   中英

確保推送時數組中的值是唯一的

[英]make sure values in array are unique when pushing

我使用Underscore將值從JSON推入多個數組中,但是我想消除在推入期間或之后的任何重復值(如果有)。 我該怎么辦?

JSON格式

looks = [{
        "id": "look1",
        "products": ["hbeu50271385", "hbeu50274296", "hbeu50272359", "hbeu50272802"]
    }, {
        "id": "look2",
        "products": [
            "hbeu50274106", "hbeu50273647", "hbeu50274754", "hbeu50274063", "hbeu50274911", "hbeu50274106", "hbeu50240022", "hbeu50271944"
        ]
    }, {
        "id": "look3",
        "products": [
            "hbeu50272935", "hbeu50274426", "hbeu50271624", "hbeu50274762", "hbeu50275366", "hbeu50274433", "hbeu50262002", "hbeu50272364", "hbeu50272359"
        ]
    }
    .......
]

JS(下划線)

var productArrays = [];
_.each(looks, function(look) {
  var productArray = [];
  _.each(look.products, function(product) {
    productArray.push(product.replace(/_.*/, ''))
  })
  productArrays.push(productArray);
});

有幾種方法

1.使用_.uniq

_.uniq(productArray);

2.在push送到productArray之前使用_.indexOf

為了使數組的內容唯一,如何使用_.uniq?

或者只是在真正推動價值之前檢查價值的存在。

function uniquePush(arr, valueToPush) {
    if(arr.indexOf(valueToPush) == -1) {
        arr.push(valueToPush)
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM