题目: 删除数组 arr 最后一个元素。不要直接修改数组 arr,结果返回新的数组
解决办法
1. slice() + pop()
slice()
方法用数组的某个片段切出新数组
。本例从数组元素 0 开始切出一段数组。它不会从源数组中删除任何元素。不会改变原数组pop()
方法从数组中删除最后一个元素。
function truncate(arr) {
//var arr1 = arr; //这样写实际是arr1引用了arr,实际上修改的还是arr
var arr1 = arr.slice(0); //将原数组复制给一个新的数组
arr1.pop();
return arr1; //[1, 2, 3]
}
var arr = [1, 2, 3, 4];
document.write(truncate(arr));
2. concat() + pop()
concat()
方法通过合并(连接)现有数组来创建一个新数组。
function truncate(arr) {
var arr1 = arr.concat();
arr1.pop();
return arr1; //[1, 2, 3]
}
var arr = [1, 2, 3, 4];
document.write(truncate(arr));
3. push()
push()
方法(在数组结尾处)向数组添加一个新的元素。- 定义一个新的数组
arr1
,将数组arr
中的前arr.length-1
个元素添加到arr1
中
function truncate(arr) {
var arr1 = [];
for(var i = 0; i < arr.length-1; i++){
arr1.push(arr[i]);
}
return arr1; //[1, 2, 3]
}
var arr = [1, 2, 3, 4];
document.write(truncate(arr));
4. slice()
function truncate(arr) {
return arr.slice(0,arr.length-1);
}