Array()数组
1、创建数组
var pets = ['dog','cat'];
2、concat()方法,用于合并两个或多个数组,返回一个新数组
例(1):连接两个数组
var arr1 = ['a','b','c'];
var arr2 = ['d','e','f'];
console.log(arr1.concat(arr2));
例(2):连接三个数组
var arr1 = ['a','b','c'];
var arr2 = ['d','e','f'];
var arr3 = ['g','h','i'];
console.log(arr1.concat(arr2,arr3));
例(3):将值连接到数组
var arr1 = ['a','b','c'];
var arrNum = arr.concat(1,[2,3]);
console.log(arrNum);
例(4):合并嵌套数组
var num1 = [[1]];
var num2 = [2,[3]];
var nums = num1.concat(num2);
console.log(nums);
3、filter()方法 过滤
例(1):由大于等于60的元素组成了一个新数组
let arr=[90,22,56,87,66,20,99];
let result = arr.filter(function(item){
if(item>=60){
return true;
}else{
return false;
}
})
console.log(result);
4、find()方法 返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。
例(1):用对象的属性查找数组里的对象
var items = [{name:'dog',age:4},{name:'cat',age:2},{naem:'bird',age:1}];
function findCat(pet){
return pet.name === 'cat';
}
console.log(items.find(findCat));
5、forEach()方法
例(1):依次弹出数字和对应的索引值
let arr=[22,32,12,56,78,90];
arr.forEach((item,index)=>{
alert(item+","+index);
})
6、indexOf()方法 返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
例(1):使用indexOf方法确定多个值在数组中的位置
var arr = [1,3,5,7,9];
alert(arr.indexOf(3)); //1
alert(arr.indexOf(2)); //-1
alert(arr.indexOf(9)); //1
例(2):查找数组中"cat"元素
var pets = ["dog", "cat", "rabbit", "duck"];
var a = pets.indexOf("cat");
console.log(a);
7、join()方法 将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。
例(1):用四种不同的分隔符连接数组元素
let a = ['dont', 'let', 'your','dreams','be','dreams'];
console.log(a.join()); //dont,let,your,dreams,be,dreams
console.log(a.join(', ')); //dont, let, your, dreams, be, dreams
console.log(a.join(' + ')); //dont + let + your + dreams + be + dreams
console.log(a.join('')); //dontletyourdreamsbedreams
例(2):连接类数组对象
function arr(a, b, c) {
var a = Array.prototype.join.call(arguments);
console.log(a);
}
arr(1, 'a', true);
8、map()方法 通过指定函数处理数组的每个元素,并返回处理后的数组
例(1):给数组的每个值加倍
let arr=[12,5,7];
let result=arr.map(function(item){
alert(item);
return item*2;
})
alert(result); //24,10,14
例(2):将分数低于60分的化成不及格,大于或等于60分的化成及格
let arr1=[35,66,99,56,79,80];
let result1 =arr1.map(function(item){
if(item>=60){
return "及格";
}else{
return "不及格";
}
})
alert(result1);
9、pop()方法 从数组中删除最后一个元素
例(1)
var pets = ['dog','cat','bird'];
var popLast = pets.pop();
console.log(pets); //["dog", "cat"]
console.log(popLast); //bird
10、push()方法 将一个或多个元素添加到数组的末尾
例(1)
var pets = ['dog','cat'];
var addPet = pets.push('mouse');
console.log(pets); //["dog", "cat", "mouse"]
例(2):合并两个数组
var arr4 = ['apple', 'pear'];
var arr5 = ['orange', 'peach'];
arr4.push('orange', 'peach');
console.log(arr4); //["apple", "pear", "orange", "peach"]
11、reduce()方法 把一堆数组变成一个
例(1):计算数组里所有值得和
var sum = [0, 1, 2, 3].reduce(function (a, b) {
return a + b;
});
alert(sum);
例(2):将二维数组转化为一堆
var arr6 = [[1,2],[3,4],[5,6]].reduce(function(a,b){
return a.concat(b);
})
console.log(arr6);//[1, 2, 3, 4, 5, 6]
例(3):计算数组中元素出现的次数
var arr = ["apple","orange","apple","orange","pear","orange"];
function getWordCnt(){
return arr.reduce(function(prev,next){
prev[next] = (prev[next] + 1) || 1;
return prev;
},{});
}
console.log(getWordCnt());
12、shift()方法 删除数组最前面的元素
例(1)
var pets = ['dog','cat','bird'];
var shiftFirst = pets.shift();
console.log(pets); //["cat", "bird"]
13、splice()方法 删除数组最前面的元素,splice,在数组中间添加元素,语法:数组名.splice(起点(从1开始数到几就是这个数之后的 数),长度,元素A,元素B),长度代表删除,如果不想删除,长度就是0。
例(1)
var arr=["Kathy","Kristal","Diana","Kelly"];
arr.splice(2,0,"Grace"); //在第二个后面添加“Grace”
console.log(arr);
arr.splice(2,2,"Grace"); //删除
console.log(arr);
14、sort()方法 对数组的元素进行排序。
例(1):对字母进行排序可以直接用sort
var arr=['apple','yellow','blue','grew','orange'];
console.log(arr.sort());
例(2):对数字进行排序
var arr2=[12,8,19,13,99,112,2];
function compare(a,b){
//return a-b;//从小到大
return b-a;//从大到小
}
console.log(arr2.sort(compare));
15、unshift()方法 将一个或多个元素添加到数组的开头,并返回新数组的长度。
例(1)
var arr = [1,2];
arr.unshift(0);
console.log(arr);
arr.unshift([-1]);
console.log(arr);