一、数组的四个方法
push():用来向数组的最后添加一个或多个元素,会返回新的长度
pop():从数组的最后删除最后一个元素,并返回被删除的元素
unshift():从数组的前边添加一个或多个元素,并返回新的长度
shift():删除并返回数组的第一个元素
let arr = ['孙悟空', '猪八戒', '唐僧', '沙和尚', '蜘蛛精'];
arr.push('白骨精');
arr.push('蝎子精', '玉兔精');
arr.pop();//删除掉玉兔
arr.unshift('二郎神', '哪吒');
arr.shift();//删二郎神
console.log(arr);
二、数组的方法
slice():用来截取数组,是一个非破坏性的方法
参数:
1.截取的起始位置索引(包含起始位置)
2.截取的结束位置索引(不包含结束位置)
该方法不会影响到原来的数组,而是将结果将返回值返回;
可以省略第二个参数,如果不写第二个参数,则会一直截取到最后;
索引可以传负值,-1表示倒数第一个,-2表示倒数第二个,依次类推
splice():可以用来删除,替换,添加数组中的元素,是一个破坏性的方法,该方法会对原数组产生影响
参数:
1.删除元素起始位置索引
2.删除的数量
3.可以传递多个参数,这些参数将会作为新元素,添加到数组中
返回值:就是被删除的元素
let result = arr.slice(1, 3);//删除指定元素
console.log(arr);//还是原来的值
console.log(result);
result = arr.splice(0, 2, 'qqq', 'wwww');//向指定位置插入新元素
console.log(arr);
练习:
定义一个函数,将perArr中所有成年人筛选到一个新的数组并返回
function Person(name, age) {
this.name = name;
this.age = age;
}
let p1 = new Person('swk', 8);
let p2 = new Person('zbj', 28);
let p3 = new Person('aaa', 38);
let p4 = new Person('bbb', 48);
let p5 = new Person('ccc', 58);
let p6 = new Person('ddd', 68);
let perArr = [p1, p2, p3, p4, p5, p6];
function getAdult(arr) {
let newArr = [];
//遍历数组
for (let i = 0; i < arr.length; i++) {
// 检查当前的人的对象是否成年
if (arr[i].age >= 18) {
// 进入判断,证明当前人的对象成年了,将其放入到新的数组
newArr.push(arr[i]);
}
// console.log(arr[i]);//每一个人的对象已拿到
}
return newArr;
}
let result = getAdult(perArr);//perArr为实参,调用getAdult函数方法
console.log(result);
练习:
编写代码,去除数组中重复的数字
// 思路:分别取出每个数,和其他的数字进行比较
for (let i = 0; i < arr.length; i++) {
// 将arr[i]和后边的元素进行比较,获取arr[i]后边的元素
// console.log(arr[i]);
for (let j = i + 1; j < arr.length; j++) {
// console.log('------>', arr[j]);
// 比较arr[i]、arr[j]
if (arr[i] === arr[j]) {
// 全等,说明出现了重复的数字,删除后边的数字J
arr.splice(j, 1);
//当删除一个元素后,后边所有的元素索引自动前移,这会导致有元素会错过比较
// 执行j--,将当前位置再比较一遍,避免出现重复的现象
j--;
}
}
}
console.log(arr);