一.学习数组的拓展方法需要 注意两个地方
- 方法的返回值
- 是否改变原数组 (有的是直接改变原数组 有的是形成新的数组)
二.数组中 元素的 增删改查
-
push()尾部删除
push() 在数组尾部添加一个或多个元素
返回值 新增元素后数组的长度
是否改变原数组 改变
var list = [54, 68, 46, 75, 36, 20, 65, 11, 79, 45];
console.log(list);
// list[list.length]
var result = list.push("x", "y", "z");
console.log(result);
console.log(list);
2.unshift()头部增加
unshift() 在数组头部添加一个或多个元素
返回值 新增元素后数组的长度
是否改变原数组 改变
var list = [54, 68, 46, 75, 36, 20, 65, 11, 79, 45];
console.log(list);
var result = list.unshift("x", "y", "z");
console.log(result);
console.log(list);
3.pop()尾部删除
pop() 删除数组尾部的元素
返回值 被删除的元素
是否改变原数组 改变
var list = [54, 68, 46, 75, 36, 20, 65, 11, 79, 45];
console.log(list);
var result = list.pop();
console.log(result);
console.log(list);
-
shift() 删除数组尾部的元素
返回值 被删除的元素
是否改变原数组 改变
var list = [54, 68, 46, 75, 36, 20, 65, 11, 79, 45];
console.log(list);
var result = list.shift();
console.log(result);
console.log(list);
5.splice() 增删改
5.1 删除
splice(startIndex,n) 从下标为 startIndex的位置开始 删除n 个元素
返回值 被删除的元素 形成新的的数组
是否改变原数组 改变
var list = [54, 68, 46, 75, 36, 20, 65, 11, 79, 45];
console.log(list);
var result = list.splice(5, 2);
console.log(result);
console.log(list);
5.2 新增
splice(startIndex,0,item1,item2,item3 ... itemN)
从下标为 startIndex的位置开始 删除0 个元素,再增加一个或多个元素
返回值 []
是否改变原数组 改变
var list = [54, 68, 46, 75, 36, 20, 65, 11, 79, 45];
console.log(list);
var result = list.splice(5, 0, "x", "y");
console.log(result);
console.log(list);
5.3 修改
splice(startIndex,n,item1,item2,item3 ... itemN)
从下标为 startIndex的位置开始 删除n 个元素,再增加一个或多个元素
返回值 被删除的元素 形成新的的数组
是否改变原数组 改变
var list = [54, 68, 46, 75, 36, 20, 65, 11, 79, 45];
console.log(list);
var result = list.splice(5, 1, 50);
console.log(result);
console.log(list);
-
slice()方法
slice(startIndex,endIndex)
[startIndex,endIndex) 数组的裁切 (将数组中的某一段 拿出来)
startIndex 起始下标 startIndex默认为0
endIndex 结束下标 endIndex 默认值是length
返回值 被裁切的元素形成的新数组
是否改变原数组 不改变
var list = [54, 68, 46, 75, 36, 20, 65, 11, 79, 45];
console.log(list);
// var result = list.slice(3, 6);
var result = list.slice();
console.log(result);
console.log(list);
- concat() 数组的拼接/合并 (如果参数是单个元素 直接拼接到新数组中去 如果参数是数组的话,会把数组的元素合并到新数组中)
返回值 拼接后形成的新数组
是否改变原数组 不改变
var list = [54, 68, 46, 75, 36, 20, 65, 11, 79, 45]; console.log(list);
var arr = ["a", "b", "c"];
var result = list.concat("x", "y", arr);
console.log(result);
console.log(list);
-
reverse() 数组的翻转/反转
返回值 反转后的原数组
是否改变原数组 改变
//=> ["f","e","d","c","b","a"];
var list = ["a", "b", "c", "d", "e", "f"];
console.log(list);
var result = list.reverse();
console.log(result);
console.log(list);
- includes() 包含 判断数组中是否包含某个元素 包含返回 true 不包含返回 false
var list = ["a", "b", "c", "d", "e", "f"];
var result = list.includes("f1");
console.log(result);
console.log(list);
- indexOf() 包含 判断数组中是否包含某个元素 包含返回就返回该元素的下标 不包含返回 -1
var list = ["a", "b", "c", "d", "e", "f"];
var result = list.indexOf("f1");
console.log(result);
console.log(list);