slice +pop
function foo(arr){
var res = arr.slice(0);
res.pop();
return res;
}
利用slice
function foo(arr) {
return arr.slice(0, -1);
}
function foo(arr) {
return arr2 = arr.slice(0, arr.length - 1);
}
利用filter
function foo(arr) {
return arr.filter(function (a, i, r) {
return i !== r.length - 1;
});
}
利用push.apply+pop
function foo(arr) {
var res = [];
[].push.apply(res, arr);
res.pop();
return res;
}
利用join+split+pop
注意:数据类型会变成字符型
function foo(arr) {
var res = arr.join().split(',');
res.pop();
return res;
}
利用concat+pop
function foo(arr) {
var res = arr.concat();
res.pop();
return res;
}
普通的迭代拷贝
function foo(arr, item) {
var res = [];
for (var i = 0; i < arr.length - 1; i++) {
res.push(arr[i]);
}
return res;
}
function foo(arr) {
var res = [];
for (var i in arr) {
if (i != arr.length - 1) {
res.push(arr[i]);
}
}
return res;
}
es6 …
function foo(arr) {
let res = [...arr];
res.pop();
return res;
}
JSON
function foo(arr) {
var res = JSON.parse(JSON.stringify(arr))
res.pop()
return res
}
博客介绍了多种JavaScript数组拷贝方法,包括slice + pop、利用slice、filter、push.apply + pop、join + split + pop、concat + pop等,还提及普通迭代拷贝、ES6扩展运算符和JSON方式,其中join + split + pop会使数据类型变为字符型。
1万+

被折叠的 条评论
为什么被折叠?



