从javascript数组中删除重复值

时间:2014-02-07 12:21:03

标签: javascript jquery

我有一个动态触发的函数并返回一个数组:

45
45,46
45,46,47

在这里,我想得到的只是单一值意味着新的第一次 45 第二次 46 被解雇下次 47

有没有办法解决这个问题?

我试过这个:

function mydata(treeId){
    console.log(treeId); // contain random data like 45,46,47
    resultPush = [];
    $.each(treeId, function(i, el){
        if($.inArray(el, resultPush) === -1){
            resultPush.push(el);

        }
    });
}

3 个答案:

答案 0 :(得分:0)

您可以尝试使用$.unique()

$.unique(treeId); // unique elements

答案 1 :(得分:0)

我必须猜测,但我想你想在数组之外声明resultPush,以便你可以知道之前调用的结果:

var resultPush = [];
function mydata(treeId){
    for (var i=0; i<treeId.length; i++ {
        var el = treeId[i];
        if ($.inArray(el, resultPush) === -1) {
            resultPush.push(el);
            return el;
        }
    }
}

mydata([45]) // 45
mydata([45,46]) // 46
mydata([45,46,47]) // 47

答案 2 :(得分:0)

你需要一个容器数组:

var container = [];

每次推送数字:

var arr = []; // Contains your numbers...
for (var i = 0, iLen = arr.Length; i < iLen; i++) {
    var exists = false;
    for (var j = 0, jLen = container.Length; j < jLen; j++) {
        if (container[j] == arr[i]) { exists = true; break; }
    }
    if (exists == false) {
         container.push(arr[i]);
    }
}

如果有人知道更好的方式,我全都听见了!