[英]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);
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.