您可以直接使用
jQuery.map()
[docs]方法创建一个数组。当您返回一个数组时,
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 );
});