JavaScript:在另一个数组中插入数组's项
JavaScript: insert an array's items inside another array
如何将数组的项插入到另一个数组中?
Inside表示插入数组并将其"展开",使其项成为所插入数组的一部分。例子:
var mainArr=[a,e,f,g];
var innerArr=[b,c,d];
,结果数组为:
[a,b,c,d,e,f,g]
应保留插入项的顺序。假设项目不可排序。
如果ExtJS框架通过其Array
函数促进上述功能,则可以在此场景中使用
如果您知道要"插入"的索引,您可以使用concat
:
var result = mainArr.slice(0,2).concat(innerArr, mainArr.slice(2));
您也可以将两个数组放在一起concat
,然后用.sort(function (a, b) { return a - b; });
排序,如果它们只包含要按顺序排列的数字。
编辑:我不打算建议.splice
,因为它需要标量参数,但由于.apply
的魔力,你仍然可以这样做:
Array.prototype.splice.apply(mainArr, [index,0].concat(innerArr));
如果您想在某个索引处插入数组:
mainArr.splice.apply(mainArr,[index,0].concat(innerArr))
将在指定的索引位置将innerArr插入到main Arr中。
这将在mainArr上运行splice,参数index,0,…innerArr内容……并在指定的索引处添加这些额外的参数。
更新一行修改了mainArr,它没有返回值。
如果需要保留mainArr,可以克隆它
newarr = mainArr.splice(0)
newarr.splice.apply(newArr,[index,0].concat(innerArr))
或(不太可读)
mainArr.splice(0).splice.apply(this,[index,0].concat(innerArr))
你可以这样做:
var mainArr=['a','e','f','g'];
var innerArr=['b','c','d'];
mainArr=mainArr.concat(innerArr).sort()
alert(mainArr)
http://jsfiddle.net/fR2cC/3/相关文章:
- JavaScript数组包含一个值
- 使用事件更改数组的一个元素
- 从 javascript 数组创建一个 Jquery 数组
- 使用javascript匹配字符串中数组的一个元素
- Angular2从数组创建一个列表
- 在Javascript数组或一个对象中存储多个数据所需的Tweak
- 你能给被劫持的JavaScript数组添加一个函数吗
- 从带有循环的数组中一个接一个地在画布上绘制形状
- 将图像数组从一个窗口传递到另一个窗口,并在javascript的新窗口中显示图像
- 使用拆分字符串的数组创建一个对象
- 多维数组 - 创建一个表
- 将数组从一个函数传递到另一个函数
- 如何将复选框值的数组从一个JSP页面传递到另一个页面
- 使用Knockout.Js将数组绑定到表,并将数组的一个项绑定到另一个元素
- 需要访问数组从一个js到另一个
- 我如何发送数据像数组从一个html文件到另一个html页面
- 从另一个对象和要保存的键数组生成一个对象的最简洁的方法
- 用另一个js数组填充一个javascript数组
- 将对象数组从一个函数传递到另一个函数
- 根据另一个值数组过滤一个对象数组,返回一个空列表