Array JavaScript中的重复,唯一和唯一值

时间:2014-04-13 08:42:16

标签: javascript arrays google-apps-script

我一直在我的Google应用脚本中使用此library,特别是Unique功能。

到目前为止,这已经完成了我的要求,如果我有两个数组,如:

[1,2,3][2,3,4],我一直在使用array1.concat(array2)并使用唯一函数,它将返回[1,2,3,4]。

如何检索我的示例中的唯一值[1,4]

1 个答案:

答案 0 :(得分:3)

尝试以下函数,它将返回不同,唯一和重复元素的对象。

var a = [1,2,3], b = [2,3,4];
var c = a.concat(b);

function arrays( array ) {
    var distinct = [], unique = [], repeated = [], repeat = [];

    array.forEach(function(v,i,arr) {
        arr.splice(i,1);
        ( distinct.indexOf(v) === -1 ) ? distinct.push(v) : repeat.push(v);
        ( arr.indexOf(v) === -1 ) ? unique.push(v) : void 0;
        arr.splice(i,0,v);
    });

    repeat.forEach(function(v,i,arr) {
        ( repeated.indexOf(v) === -1 ) ? repeated.push(v) : void 0;
    });

    repeat = [];

    return {
        "distinct" : distinct,
        "unique"   : unique,
        "repeated" : repeated
    };
}

console.log(arrays(c));

DEMO

在您的情况下,您将获得所需的结果,例如console.log(arrays(c).unique) [1,4]