题目描述
删除数组 arr 最后一个元素。不要直接修改数组 arr,结果返回新的数组
示例1
输入
[1, 2, 3, 4]
输出
[1, 2, 3]
代码实现:
function truncate(arr) {
var a = arr.slice(0);
a.pop();
return a;
}
// slice方法用于提取原数组的一部分,返回一个新数组,原数组不变。
function truncate(arr) {
return arr.slice(0,arr.length-1);
}
// ----------------------------------------------------------
function truncate(arr) {
var a=[];
for(var i=0;i<arr.length;i++){
a.push(arr[i]);
}
a.pop(a.length-1);
return a;
}
truncate([1, 2, 3, 4]);
// ----------------------------------------------------------
//利用slice
function truncate(arr) {
return arr.slice(0,-1);
}
//利用filter
function truncate(arr) {
return arr.filter(function(v,i,ar) {
return i!==ar.length-1;
});
}
//利用push.apply+pop
function truncate(arr) {
var newArr=[];
[].push.apply(newArr, arr);
newArr.pop();
return newArr;
}
//利用join+split+pop 注意!!!:数据类型会变成字符型
function truncate(arr) {
var newArr = arr.join().split(',');
newArr.pop();
return newArr;
}
//利用concat+pop
function truncate(arr) {
var newArr = arr.concat();
newArr.pop();
return newArr;
}
//普通的迭代拷贝
function truncate(arr, item) {
var newArr=[];
for(var i=0;i<arr.length-1;i++){
newArr.push(arr[i]);
}
return newArr;
}