在下面的简单测试代码中,我push
将数字10放入一个数组中,然后将splice
'hello world'放入第二个索引的数组中.它按预期工作.
"use strict";
let myArray = [1, 2, 3, 4, 5];
myArray.push(10);
myArray.splice(2, 0, 'hello world');
console.log(myArray);
Run Code Online (Sandbox Code Playgroud)
但是有可能在一条线上做到这一点吗?我尝试在下面的示例链接,它会抛出一个错误.我找不到有人在网上谈论这个.
"use strict";
let myArray = [1, 2, 3, 4, 5];
myArray.push(10).splice(2, 0, 'hello world');
console.log(myArray);
Run Code Online (Sandbox Code Playgroud)
是的,可以在一行中完成.
"use strict";
let myArray = [1, 2, 3, 4, 5];
myArray.push(10); myArray.splice(2, 0, 'hello world');
console.log(myArray);
Run Code Online (Sandbox Code Playgroud)
但是你为什么要一行呢?如果您的担忧是可读性,我会坚持两行.如果您希望它更具功能性,那么请使用功能库
编辑
我同意其他人对可连接性的看法.我只是想说明一点
如果您使用的是现代 JavaScript 浏览器,则使用数组扩展语法push
会更容易一些。由于其他人都在使用链接(这需要更改内置的 Array 对象,我不喜欢),所以我将使用不同的东西:
"use strict";
let myArray = [1, 2, 3, 4, 5];
function notSplice(array, start, end, ...items) {
array.splice.apply(array, [start, end, ...items]);
return array;
}
myArray = notSplice([...myArray, 10], 2, 0, 'hello world');
console.log(myArray);
Run Code Online (Sandbox Code Playgroud)