jQuery-合并两个数组并进行更改
jQuery - merge two arrays with alteration
我试图找到最简单的方法,用jQuery将两个数组合并到第三个数组中,如下所示:
[A,B,C,D]
[1,2,3,4]
答案是:
[A,1,B,2,C,3,D,4]
另一个例子:
[A,B,C] + [1,2,3,4,5] = [A,1,B,2,C,3,4,5]
[A,B,C,D] + [1,2,3] = [A,1,B,2,C,3,D]
var result = [];
var a = ['A','B','C','D'];
var b = [1,2,3,4];
$.each(a, function (index, value) {
result.push(value);
result.push(b[index]);
});
请在此处尝试:http://jsfiddle.net/GcTx7/3/
没有jQuery:
for (var i = 0, l = a.length; i < l; ++i) {
result.push(a[i], b[i]);
}
这一个处理了两个阵列长度不相同的情况:
for (var i = 0, l = Math.max(a.length, b.length); i < l; ++i) {
if (i < a.length) result.push(a[i]);
if (i < b.length) result.push(b[i]);
}
http://jsfiddle.net/GcTx7/1/
您可以使用jQuery.map()
[docs]方法直接创建数组。返回Array时,jQuery.map
执行.concat()
。
当长度不同时,这也将防止阵列中出现孔洞。
http://jsfiddle.net/zbCj7/
var chars = ['A','B','C','D'];
var nums = [1,2,3,4];
var res = $.map( chars.length > nums.length ? chars : nums, function(v,i) {
var chr = chars[i];
var num = nums[i];
if( chr !== undefined && num !== undefined ) {
return [chr,num];
} else if( chr === undefined ) {
return num;
} else {
return chr;
}
});
或者更简洁一点:
http://jsfiddle.net/zbCj7/1/
var chars = ['A','B','C','D'];
var nums = [1,2];
var res = $.map( chars.length > nums.length ? chars : nums, function(v,i) {
var chr = chars[i];
var num = nums[i];
return ( chr !== undefined && num !== undefined ) ?
[chr,num] : ( chr === undefined ) ? num : chr;
});
如果你真的想让它简洁,你可以这样做:
http://jsfiddle.net/zbCj7/2/
var chars = ['A','B','C','D'];
var nums = [1,2];
var res = $.map( chars.length > nums.length ? chars : nums, function(v,i) {
return [ chars[i], nums[i] ].slice( chars[i]===undefined,
nums[i]===undefined || 2 );
});
使用jquery的另一种方法是:
var a = [1,2,3,4];
var b = ['a','b','c'];
var merged_array = mergeArray([a,b]);
function mergeArrays(arrayOfArray) {
var result = [];
for (var i = 0; i < arrayOfArray.length;i++ ) {
$.merge(result, arrayOfArray[i]);
}
return result;
}
通过这种方式,您可以合并任意数量的数组,而不必担心单个数组的大小。
希望这也能帮上忙。
相关文章:
- 如何使用 node.js 比较两个 json 数组
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 访问$.ajax()函数中的两个不同数组
- 正在更新mongod中两个对象内部的数组
- 如何使用javascript合并两个对象数组
- 比较包含多个值对的两个JavaScript数组
- jQuery对象从html表中查询为两个一维数组,用于Chartist图表
- 检查来自不同数组的两个元素的一个属性是否相等
- 如何在javascript中合并两个对象数组
- 如何获取数组第一个元素的范围
- 捕获一组两个特殊字符之间的所有内容,但允许角色在正文中出现一次
- 使用具有不同属性数的两个或多个着色器时发生冲突
- JSON数组-多个有效答案的可能性
- 编写一个函数,将数组(第一个参数)拆分为大小(第二个参数)的长度组,并将它们作为多维数组返回
- 如何添加值到javascript数组两次或更多
- 使用.shift()更新数组'5个元素
- JavaScript 过滤器数组多个条件
- 如果数组第一个元素中的字符串包含数组第二个元素中字符串的所有字母,则返回true
- Javascript序列化数组多个表单问题
- 编写一个函数,将数组(第一个参数)拆分为大小相同的组(第二个参数),并将其作为多维数组返回