常用的数组方法

常用的Array的方法

##修改器方法,这些方法会改变调用它们的对象自身的值

1.pop()方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。

常用例子:

let a=[1,2,3,4,5];
     let b=a.pop();
console.log(a);
//[1,2,3,4]
console.log(b); //5
        返回值: 从数组中删除的元素(当数组为空时返回 undefined )。

2.push() 方法将一个或多个元素添加到数组的末尾,并返回新数组。

常用例子:

let num=[1,2,3];
num.push(4);
console.log(num);
num.push(5,6,7);

console.log(num);

        返回值:当调用该方法时,返回新的数组长度


3.shift()方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度

常用例子:

let a=[1,2,3];
let b=a.shift();
console.log(a);
//[2,3]

console.log(b);//1

        返回值:从数组中删除的元素,如果当数组为空时返回undefined


4.sort()方法用于对数组进行排序,并返回数组,根据字符串Unicode码点进行排序

常用例子:

let fruit=['cherries','apples','bananas'];
fruit.sort();
//根据第一个字母排序
console.log(fruit);

let scores=[1,21,15,2];
scores.sort(scores);

console.log(scores);//[1,15,2,21],根据第一个数字进行排序

        返回值:返回排序后的数组,原数组被排序后的数组代替


5.splice()方法通过删除或添加新元素来更改数组的元素

常用例子:

let myFish=['angel','clown','mandarin','sturgeon'];
//添加
myFish.splice(2,0,'drum'); //在索引为2的位置插入'drum',从0开始数
console.log(myFish); //["angel", "clown", "drum", "mandarin", "sturgeon"]

//删除
myFish.splice(2,1); //从索引为2的位置删除一项
console.log(myFish); //["angel", "clown", "drum", "mandarin", "sturgeon"]
myFish.splice(2); //从索引为2的位置删除后面所有

console.log(myFish);//["angel", "clown"]

        返回值:一个含有提取元素的新数组


6.unshift()方法将一个或多个元素添加到数组的开头

常用例子:

let arr=[1,2,3];
a.unshift(4,5);
console.log(a);
//[4, 5, 1, 2, 3]
返回值:当一个对象调用该方法时,返回其 length 属性值访问方法,不会改变调用它们对象的值,只会返回一个新的数组或者返回一个其他的期望值

7.concat()方法用于合并两个或多个数组

常用例子:

let arr1=['a','b','c'];
let arr2=['d','e','f'];
result=arr1.concat(arr2);
console.log(result);
//["a", "b", "c", "d", "e", "f"]
返回值:新的数组

8.join()方法将一个数组的所有元素连接成一个字符串

常用例子:

let arr=['Wind','Rain','Fire'];
console.log(arr.join());
// 'Wind,Rain,Fire'
//join()里面的分隔符默认为","
console.log(arr.join("")); // "WindRainFire"
//分隔符为空字符串""
console.log(arr.join("-")); // 'Wind-Rain-Fire'
//分隔符为"-"

返回值:一个所有数组元素连接的字符串。如果 arr.length 为0,则返回空字符串

9.indexOf()方法返回在数组中可以找到一个给定元素的第一个的索引值,如果不存在,则返回-1

常用例子:

let arr=[2,1,4,5,8,9];
console.log(arr.indexOf(2));
//索引为0
console.log(arr.indexOf(3)); //不存在,-1
console.log(arr.indexOf(4)); //索引为2
//两个参数,第一个参数为要查找的元素,第二个为开始查找的位置
//当索引值大于或等于数组长度,返回-1
//当索引值为-1表示从最后一个开始查找,-2为倒数第二个,不改变查找顺序,从前向后

console.log(arr.indexOf(5,1)); //索引为1
console.log(arr.indexOf(8,3)); //4
console.log(arr.indexOf(1,-2)); //-1
console.log(arr.indexOf(2,-6)); //0


迭代方法

10.forEach()方法对数组的每个元素执行一次提供的函数,遍历数组

常用例子:

let arr=[22,32,12,56,78,90];
arr.forEach((item,index)=>{
alert(index+":"+item);
})
参数:item当前的值,index当前项的索引,数组本身arr
返回值:undefined


11.filter()过滤,不会改变原数组,返回过滤后的新数组

常用例子:

        //筛选可以被3整除的数

let arr=[39,25,50,80,72,93];
let result=arr.filter(function(item){
    if(item%3==0){
return true;
    }else {
return false;
    }
});
console.log(result);
参数:item当前的值,index当前项的索引,数组本身arr
返回值:一个新的通过测试的元素的集合的数组


12.map()映射,创建新数组,结果为原数组调用函数后返回的结果

常用例子:

//将对应分数化成及格或不及格
let arr=[35,66,99,56,79,80];
let result=arr.map(item=>item>60?"及格":"不及格");    
alert(result);
回调函数的三个参数: item当前的值,index当前项的索引,数组本身arr
返回值:一个新数组,每个元素都是回调函数的结果。

13.reduce()方法,把一堆变成一个

常用例子:

语法:arr.ruduce(function(prev,current,index,arrar){},初始值)
回调函数第一次执行,提供初始值时,prev为提供的值,current为数组中的第一个值;
没有提供初始值,prev为数中的第一个值,current为数组中的第二个值
//1.利用reduce求和
let arr=[1,2,3,4];
let result=arr.reduce(function(prev,current,index){
return prev+current;
})
alert(result);

//2.计算水果出现的次数
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());

方法二:
var arr=["apple","orange","apple","orange","pear","orange"];
var countWord=arr.reduce(function(allFruits,fruit){
if(fruit in allFruits){
allFruits[fruit]++;
}else{
allFruits[fruit]=1;
}
return allFruits;
},{})
console.log(countWord);

//数组去重

        let arr=[1,2,1,2,3,5,4,5,3,4,2,4,2];
let result=arr.sort().reduce((init,current)=>{
if(init.length===0||init[init.length-1]!==current){
init.push(current);
}
return init;
},[]);
console.log(result);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值