繁体   English   中英

如何在jQuery中比较合并两个数组

[英]How to compare merge two arrays in jquery

我有两个数组:

existing_names = username1, username2, username3;

new_names = username1, username4, username5;

我的输出应该是:

new_names = username1, username2, username3, username4, username5;

我怎么能用jQuery做到这一点...

使用snook的OC函数及其纯Javascript相当容易。 可以用jQuery缩短,但没有它总是很有趣的:)

演示: http : //jsfiddle.net/wesbos/MvurR/

var existing_names = ["username1", "username2", "username3"];

var new_names = ["username1", "username4", "username5"];

/* http://snook.ca/archives/javascript/testing_for_a_v */ 

function oc(a)
{
  var o = {};
  for(var i=0;i<a.length;i++)
  {
    o[a[i]]='';
  }
  return o;
}


for (var i=0; i < existing_names.length; i++) {
    if (!(existing_names[i] in oc(new_names))) {
        new_names.push(existing_names[i]);
    }
}

console.log(new_names);

http://jsfiddle.net/AYgNW/3/

var existing_names = ['username1','username2','username3'];
var new_names = ['username1','username4','username5'];

function mergeArrays( a1, a2 ) {

    var len1 = a1.length;
    var len2 = a2.length;
    var found = false;

    for ( var x = 0; x < len2; x += 1 ) {

        found = false;

        for ( var y = 0; y < len1; y += 1 ) {
             if ( a1[y] === a2[x] ) {
                found = true;
                break;
            }
        }

        if ( ! found ) {
            a1.push( a2[x] );
        }

    }

    return a1;

}

// merge arrays
new_names = mergeArrays( new_names, existing_names );

// sort the resulting array
new_names.sort();

for ( var x = 0; x < new_names.length; x += 1 ) {
    document.write(new_names[x] + ', ');
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM