如何在javascript中选择未知数字?

时间:2010-09-24 02:33:24

标签: javascript arrays dom get element

例如,我有:

阵列(2134567

我已经知道213

如果我知道从4到{{1}的所有号码都存在,我应该如何获得5671)和我已经知道

的数字

所以我想要一个包含我还不知道的数字的数组。

对不起,如果听起来很愚蠢:|

1 个答案:

答案 0 :(得分:0)

如果A = (2, 1, 3)且B = (1, 2, 3, 4, 5, 6, 7)

那么你想要不常见的元素(即,两者中都不存在的元素)吗?你可以试试这个:

//note: could be improved - wrote it quickly
function uncommon(a, b) {

    var map = {};
    var alreadyAdded = {};
    var uncommonElements = [];

    var arrays = (a.length > b.length) ? 
                     {first: b, second: a} : 
                     {first: a, second: b};

    for(var i = 0; i < arrays.first.length; i++) {
        map[arrays.first[i]] = true;
    }

    for(var i = 0; i < arrays.second.length; i++) {
        if(!map[arrays.second[i]]) {
            uncommonElements.push(arrays.second[i]);
            alreadyAdded[arrays.second[i]] = true;
        }
    }

    for(var i = 0; i < arrays.first.length; i++) {
        if(!map[arrays.second[i]] && !alreadyAdded[arrays.first[i]]) {
            uncommonElements.push(arrays.first[i]);
        }
    }

    return uncommonElements;
}

另请注意,如果您有:

A = (2, 1, 3, 9)而B = (1, 2, 3, 4, 5, 6, 7),您会得到(2, 1, 3, 9),即其中任何一个都找不到元素。