1.数组方法
push()
在数组的末尾增加元素,()内有参数
var arr = ['a','b','c']
arr.push('d','e'); //push('d','e') 在数组的末尾增加元素'd','e'
console.log(arr); //["a", "b", "c", "d", "e"]
pop()
数组的末尾的元素去掉,()内没有参数
var arr = ['a','b','c','d']
arr.pop(); //pop() 把数组末尾的元素'd'去掉了
console.log(arr); // ["a", "b", "c"]
shift()
删除数组的第一个元素,()内没有参数
var arr = ["a", "b", "c", "d", "e"];
arr.shift(); // shift() 把数组的第一个元素'a'去掉了
console.log(arr); // ["b", "c", "d", "e"]
unshift()
在数组的第一个元素前增加元素,()内有参数
var arr = ["a", "b", "c", "d", "e"];
arr.unshift(1,2,3); // unshift():在数组的第一个元素前增加元素1,2,3
console.log(arr); //[1, 2, 3, "a", "b", "c", "d", "e"]
join()
把数组拼接成字符串
var arr = ["a", "b", "c", "d", "e"];
arr.join(''); // "abcde" 以空字符串连接
arr.join('-'); // "a-b-c-d-e" 以"-"连接
arr.join('.'); // "a.b.c.d.e" 以"."连接
arr.join(); // "a,b,c,d,e" 直接把数组整个变成字符串
splice()
对数组中的任意元素删除、增加、替换,()内有参数
// 删除数组任意元素
var arr1 = ["a", "b", "c", "d", "e"];
arr1.splice(2,1)
/* ()内第一个参数表示数组的下标(必须有),第二个参数表示删除的个数
arr[2] 就是“c”,删除1个
*/
console.log(arr1) // ["a", "b", "d", "e"]
// 删除数组任意元素之后所有元素
var arr2 = ["a", "b", "c", "d", "e"];
arr2.splice(2) // 如果()内没有第二个参数,就意味着下标后的所有元素都删除
console.log(arr2) // ["a", "b"]
// 替换数组任意元素
var arr3 = ["a", "b", "c", "d", "e"];
arr3.splice(2,1,'A','B')
/* 如果()内有3个及3个以上的参数,
前两个表示要删除的元素,第三个(含)之后的参数是要增加的元素
*/
console.log(arr3) // ["a", "b", "A", "B", "d", "e"]
// 在数组任意位置插入元素
var arr4 = ["a", "b", "c", "d", "e"];
arr4.splice(2,0,1,2,3)
/*第二个参数是0,表示在下标前插入任意元素,
第三个(含)之后的参数是要插入的元素
*/
console.log(arr4)
// ["a", "b", 1, 2, 3, "c", "d", "e"]
2.写一个函数,操作数组,数组中的每一项变为原来的平方,在原数组上操作
function squareArr(arr){
for(var i=0; i<arr.length; i++){
arr[i] = arr[i]*arr[i];
}
return arr;
}
var arr = [2, 4, 6]
squareArr(arr)
console.log(arr) // [4, 16, 36]
3.写一个函数,操作数组,返回一个新数组,新数组中只包含正数,原数组不变
function filterPositive(arr){
var arrPlus = [];
var j = 0;
for(var i=0; i<arr.length; i++){
if( typeof arr[i] ==="number" && arr[i] > 0){
arrPlus[j] = arr[i];
j++;
}
}
return arrPlus;
}
var arr = [3, -1, 2, '饥人谷', true]
var newArr = filterPositive(arr)
console.log(newArr) //[3, 2]
console.log(arr) //[3, -1, 2, '饥人谷', true]