js数组拼接的方法
// Array.prototype.concat();
let a = [1,2,3];
let b = [4,5,6];
console.log(
Array.prototype.concat(a,b)
); // [1, 2, 3, 4, 5, 6]
console.log( a.concat(b) ); // [1, 2, 3, 4, 5, 6]
console.log( a ); // [1, 2, 3]
使用concat方法,不会改变原数组(或目标数组)。
Array.prototype.concat( 目标数组, 添加数组集 );
模拟concat方法为:
function concat(...args) {
let isArr = Object.prototype.toString.call(args);
if(isArr !== "[object Array]") {
throw new TypeError("非数组!");
}
let newArr = [];
if(this !== window) {
this.forEach(item => newArr.push(item));
}
args.forEach(function (item){
if (item instanceof Array) {
item.forEach(
function (current) {
newArr.push(current);
}
);
} else {
newArr.push(item);
}
},args);
console.log(this); // [1, 2]
return newArr;
}
Array.prototype.concat = concat;
let a = [1,2];
let b = [3,4];
console.log(
"结果为:",
a.concat(a,b)
); // [1,2,1,2,3,4]
Array.prototype.splice();
操作如下:
let ar = [1,2,3,4,5];
let p = [3,"a","b","c"];
console.log(ar);
let newA = ar.splice(
2, 1, ...p
);
console.log(newA);// [3]
console.log(ar);
// [1, 2, 3, "a", "b", "c", 4, 5]