在不应用的情况下将一个数组插入(拼接?)到另一个数组中
Inserting (splicing?) an Array into another Array without apply
假设我们在JavaScript中有两个数组,[3,4,7]
和[5,6]
。
在不进行排序或不使用.apply的情况下,将[5,6]
插入到索引2处的[3,4,7]
中以获得结果Array:[3,4,5,6,7]
的最佳方法是什么?
不知道如何定义"最佳方式",但您可以这样做:
a.slice(0,2).concat(b,a.slice(2));
除非你说你真的想突变a
阵列,否则你可以这样做:
var c = a.splice(2);
for (var i = 0; i < b.length + c.length; i++) {
a.push(i < b.length ? b[i] : c[i-b.length]);
}
.splice()
将阵列拆分为两部分的这种行为可能会在需要修补的旧IE中出现问题。
或者这可能会更好:
var c = b.concat(a.splice(2));
for (var i = 0; i < c.length; i++) {
a.push(c[i]);
}
关于.splice()
也有同样的警告。
function splice(arrayOne, arrayTwo, index) {
var result = [];
for (var i = 0; i < arrayOne.length; i++) {
if (i == index) {
result = result.concat(arrayTwo);
}
result.push(arrayOne[i]);
}
return result;
}
不太确定为什么不想使用本机方法,但这里有一个非常简单的解决方案,只有循环:
function doInsert(index, items, arr) {
var insertLen = items.length,
current;
for (i = 0; i < insertLen; ++i) {
current = i + index;
arr[current + insertLen - 1] = arr[current];
arr[current] = items[i];
}
}
var arr = [3, 4, 7];
doInsert(2, [5, 6], arr);
console.log(arr);
相关文章:
- 将数组中的值插入到表中
- 在数组中插入对象失败
- JavaScript-在不影响索引的情况下将元素插入数组
- 如何使用JQuery将值数组插入到数据库中
- 通过node-js脚本将文档数组插入mongodb中的数据库时出现问题
- 将 json_encode() 数组插入 javascript 函数
- 如何在 zend_form 中将数组插入 JavaScript
- 将 JavaScript 数组插入到 SQL 表中
- Javascript 数组插入
- 在for循环javascript中将数组插入到空数组中
- 将数组插入location.href
- 关于将javascript中的数组插入HTML中的段落元素的基本帮助
- 如何通过angular js将数组插入到node js web服务中
- AngularJS将数组插入指令中的字符串
- 通过javascript将php值的数组插入到select选项中
- 根据数组插入html
- 如何将哈希映射数组插入Redis?(Node.js)
- 高图表将数据从数组插入到折线图中
- JavaScript如何将数组插入到表中
- 在jquery/js中从数组插入元素到表