所有示例代码,可利用mdn的在线编译器调试 ,传送门
length是Array实例的属性。返回一个Number,表示数组的长度。
let arr = ['shoes', 'shirts', 'socks', 'sweaters'];
console.log('数组的长度:'+arr.length);//数组长度: 4
Array.prototype是指Array的原型。Array实例继承自 Array.prototype 。可以通过修改Array.prototype,以对所有的Array对象实例进行修改。例如,通过Array.prototype给Array添加原型级方法,该方法将可以在所有的数组对象中使用。
/*
如果JavaScript本身不提供 first() 方法,
添加一个返回数组的第一个元素的新方法first()。
*/
if(!Array.prototype.first) {
Array.prototype.first = function() {
return this[0];
}
}
在数组末尾添加一个或多个元素(对象),并返回数组的新长度.
参数:Object //可以是各种类型的对象
返回值:Number //改变后的数组长度
let sports = ["soccer", "baseball"];
let total = sports.push("football", "swimming");
console.log(sports);
// ["soccer", "baseball", "football", "swimming"]
console.log(total);
// 4
//若深究,请往下
注意:
当参数是数组时,结果并不是合并两个数组。
let sports = ["soccer", "baseball"];
let arr = ["arr1", "arr2"];
let total = sports.push(arr);
console.log(sports);
// ["soccer", "baseball", ["arr1", "arr2"]]
console.log(total);
//3
如果需要合并两个数组,可以这样
let sports = ["soccer", "baseball"];
let arr = ["arr1", "arr2"];
// 将第二个数组融合进第一个数组
// 相当于 sports.push("arr1", "arr1");
Array.prototype.push.apply(sports, arr);
console.log(sports);
// ["soccer", "baseball", "arr1", "arr1"]
//再深究,请往下
push 方法有意具有通用性。该方法和 call() 或 apply() 一起使用时,可应用在类似数组的对象上。
了解更多,请参考mdn js文档
在数组的开头添加一或多个元素(对象),并返回数组的新长度。
参数:Object //可以是各种类型的对象
返回值:Number //改变后的数组长度
let sports = ["soccer", "baseball"];
console.log(sports.unshift('newSport-1','newSport-2'))
//4
console.log(sports);
//["newSport-1", "newSport-2", "soccer", "baseball"]
//若深究,请往下
注意:
当参数是数组时,结果并不是合并两个数组。
let sports = ["soccer", "baseball"];
let arr = ["arr1", "arr2"];
console.log(sports.unshift(arr));
// 3
console.log(sports);
//[["arr1", "arr2"], "soccer", "baseball"]
注意:
调用unshift()后原数组值已经改变
let arr = [4,5,6];
arr.unshift(1);
arr.unshift(2);
arr.unshift(3);
console.log(arr); // [3, 2, 1, 4, 5, 6]
//注意区别于例一
unshift方法有意具有通用性。该方法和 call() 或 apply() 一起使用时,可应用在类似数组的对象上。
了解更多,请参考MDN js文档
从数组中删除最后一个元素,并返回该元素的值。
参数:无
返回值:Object //被删除的元素(对象)
let sports = ["soccer", "baseball"];
let result = sports.pop();
console.log(sports); // ["soccer"]
console.log(result); // baseball
了解更多,参考mdn js文档
从数组中删除第一个元素,并返回该元素的值。(即:移除索引为 0 的元素(即第一个元素),并返回被移除的元素,其他元素的索引值随之减 1。)
参数:无
返回值:Object //被删除的元素(对象)
let sports = ["soccer", "baseball"];
let result = sports.shift();
console.log(sports); // ["baseball"]
console.log(result); // soccer
了解更多,参考mdn js文档
删除或替换现有元素,或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。
array.splice(start, deleteCount, item)
参数:
start : Number (必填)
deleteCount : Number (可选) //整数,表示要移除的数组元素的个数。
item :Object //要添加进数组的元素。从start 位置开始。如果不指定,则 splice() 将只删除数组元素。可以是多个对象
返回值: Array //由被删除的元素组成的数组
示例:
从第 2 位开始删除 0 个元素,插入“drum”
let myFish = ["angel", "clown", "mandarin", "sturgeon"];
let removed = myFish.splice(2, 0, "drum");
console.log(myFish);
// ["angel", "clown", "drum", "mandarin", "sturgeon"]
console.log(removed); // []
// 被删除的元素: [], 没有元素被删除
从第 2 位开始删除 0 个元素,插入“drum” 和 "guitar"
let myFish = ["angel", "clown", "mandarin", "sturgeon"];
let removed = myFish.splice(2, 0, 'drum','guitar');
console.log(myFish);
// ["angel", "clown", "drum", "guitar", "mandarin", "sturgeon"]
console.log(removed); // []
// 被删除的元素: [], 没有元素被删除
从第 3 位开始删除 1 个元素
let myFish = ["angel", "clown", "mandarin", "sturgeon"];
let removed = myFish.splice(3, 1);
console.log(myFish);
//["angel", "clown", "mandarin"]
console.log(removed); //["sturgeon"]
从第 2 位开始删除 1 个元素,插入“trumpet” 即:修改第2位(0是第一位)
let myFish = ["angel", "clown", "mandarin", "sturgeon"];
let removed = myFish.splice(2, 1,'trumpet');
console.log(myFish); //["angel", "clown", "trumpet", "sturgeon"]
console.log(removed); //["mandarin"]
从第 0 位开始删除 2 个元素,插入"parrot"、"anemone"和"blue"
let myFish = ["angel", "clown", "mandarin", "sturgeon"];
let removed = myFish.splice(0, 2, 'parrot', 'anemone', 'blue');
console.log(myFish); //["parrot", "anemone", "blue", "mandarin", "sturgeon"]
console.log(removed); //["angel", "clown"]
从倒数第2位开始删除2个元素(倒数第0位为最后一位)
let myFish = ["angel", "clown", "mandarin", "sturgeon"];
let removed = myFish.splice(myFish.length-1 -2 , 2); //myFish.length-3 为统一从0 开始记数,写为myFish.length-1 -2
console.log(myFish); //["angel", "sturgeon"]
console.log(removed); //["clown", "mandarin"]