资讯专栏INFORMATION COLUMN

Array数组相关方法

lyning / 2070人阅读

摘要:向数组末尾添加元素参数不确定个数,而且类型也不确定,要添加的新元素返回新增加后的数组原有数组改变例如结果向数组开头增加元素参数不确定个数,而且类型也不确定,要添加的新元素返回新增加后的数组原有数组改变例如结果删除数组末尾一项参数返回删除数组

1.push向数组末尾添加元素
参数:不确定个数,而且类型也不确定,要添加的新元素
返回:新增加后的数组
原有数组改变
例如:
var arr = ["Banana", "Orange", "Apple"];
arr.push("Pear");
console.log(arr)
结果:["Banana", "Orange", "Apple" , "Pear"]

2.unshift向数组开头增加元素
参数:不确定个数,而且类型也不确定,要添加的新元素
返回:新增加后的数组
原有数组改变
例如:
var arr = ["Banana", "Orange", "Apple"];
arr.unshift("Pear");
console.log(arr)
结果:["Pear","Banana", "Orange", "Apple"]

3.pop删除数组末尾一项
参数:
返回:删除数组的个数
原有数组改变
例如:
var arr = ["Banana", "Orange", "Apple"];
arr.pop();
console.log(arr)
结果:["Banana", "Orange"]

4.shift删除数组的第一项
参数:
返回:删除的元素
原有数组改变
例如:
var arr = ["Banana", "Orange", "Apple"];
arr.shift();
console.log(arr)
结果:["Orange", "Apple"]

5.join为数组添加指定的分隔符
参数:可以有,可以是一个分隔符,不写默认是(",")
返回分开后的字符串
原有数组不变
例如:
var arr = ["Banana", "Orange", "Apple"];
console.log(arr.join(","))
结果:Banana,Orange,Apple

6.toString
相当于join()或join(",")
例如:
var arr = ["Banana", "Orange", "Apple"];
console.log(arr.toString())
结果:Banana,Orange,Apple

7.slice找某一区域内的项,返回成新数组形式
slice(n,m)从索引n开始截取到索引为m,但不包含m;m不写的话默认截取到最后;n和m都不写,默认是复制一份一模一样的数组
将找到的新数组返回
原有数组不会改变
例如:
var arr = ["Banana", "Orange", "Apple","Pear","watermelon"];
console.log(arr.slice(1,3));
结果:["Orange", "Apple"]

8.concat()将2个数组链接起来
concat()克隆一份新的数组(原有数组不变)等价于slice()或者slice(0)
原有数组不改变
例如:
var arr1 = ["Banana", "Orange"]
var arr2 = ["Apple","Pear","watermelon"]
console.log(arr1.concat(arr2));
结果:["Banana", "Orange", "Apple", "Pear", "watermelon"]

9.splice(n,m) 从索引n开始删除m个元素
splice(n,m,x) 从索引n开始删除m个元素,返回删除的元素(数组),并且将删除的区域用x代替--->数组的修改替换
如果 m是0的话,相当于没有删除,也就是在数组中的指定区域添加新的元素
返回:删除的项当成新的数组返回
原有数组是改变的
例如:
var arr = ["Banana", "Orange","Apple","Pear","watermelon"]
console.log(arr.splice(2,1,"grape"))
结果: ["Banana", "Orange", "grape", "Pear", "watermelon"]
console.log(arr);//打印出删除的元素
结果:["Apple"]

10.reverse 将数组倒过来排列
原有数组改变
例如:
var arr = ["Banana", "Orange","Apple"]
console.log(arr.reverse());
结果:["Apple", "Orange", "Banana"]

11.sort数组排序,只能处理10以内的
原有数组改变
排序后:[1, 5, 10, 25, 40, 100]
例如:
var points = [40,100,1,5,25,10];
points.sort(function(a,b){return a-b});
console.log(points)

12.forEach() 遍历
let arr = [1,2,5];
arr.forEach(function(item,index){

console.log(item);

})// 1 2 5
13.map() 映射:经常用于数据绑定
let arr = [1,3,6];
console.log(arr.map(item => item*2));//[2,6,12]
14.filter 过滤;如果回调函数返回true,则将次成员过滤出来,放到返回值中;如果为false,不需要放进返回值中
let arr = [100,55,67,88,99,10];
let res = arr.filter(item => item>60);
console.log(res);//[100, 67, 88, 99]
15.find() 查找满足条件第一项值,如果找到这个值直接终止find函数,如果找不到满足条件的项,则返回undefined[找true]
let arr = [100,55,66,30,40,25];
let res = arr.find(item => item>99);
console.log(res);//100
let res1 = arr.find(item => item>200);
console.log(res1);//undefined
16.every 返回值boolean,当回调函数都返回true,则every这个方法返回true;如果有一个是false,那么整体结果就是false,只要返回false,every就不需要在循环向下执行了【找false】
let arr = [1,2,3,4,5];
let res = arr.every(item => item>5);
console.log(res);//false
17.some:返回一个布尔值 只要回调函数有一个返回true,那么some返回值就是true,当所有的都不满足条件,结果返回false;
let arr = [50,30,55,70]
let a = arr.some(item => item>50);
console.log(a);//true
18.includes:包含 检测数组是否包含某一项:如果包含返回true,不包含返回false
let arr = [1, 2, 3, 4, 56, 7];
console.log(arr.includes(2));//true
19.reduce 收敛,求和 prev:代表除第一次循环外,代表上一次回调函数的返回值;第一次prev代表第一项;
let arr = [1, 2, 3, 4, 5];

arr.reduce((prev, next) => {
    console.log(prev + next);
    return prev + next;
});//15

let arr = [{price: 2, count: 10, name: "面筋"}, {price: 1, count: 5, name: "烤肠"}, {
    price: 3, count: 8, name: "鸡翅"}, {price: 3, count: 6, name: "啤酒"}];

arr.reduce((prev,next)=>{
    return prev + next.price * next.count;
},0)//67

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/102635.html

相关文章

  • 【underscore 源码解读】Array Functions 相关源码拾遗 & 小结

    摘要:最近开始看源码,并将源码解读放在了我的计划中。将转为数组同时去掉第一个元素之后便可以调用方法总结数组的扩展方法就解读到这里了,相关源码可以参考这部分。放个预告,下一篇会暂缓下,讲下相关的东西,敬请期待。 Why underscore 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中。 阅读一些著名框架类库的源码,就好...

    SimpleTriangle 评论0 收藏0
  • 20170605-Array相关方法

    摘要:方法将所有在过滤函数中返回的数组元素放进一个新数组中并返回。方法从左到右为每个数组元素执行一次回调函数,并把上次回调函数的返回值放在一个暂存器中传给下次回调函数,并返回最后一次回调函数的返回值。 创建数组 var array = new Array(); var array = new Array(10); var array = new Array(red,blue,green);...

    Chaz 评论0 收藏0
  • PHP基础知识小结

    原始数据类型(9种) 基本数据类型: 整形(integer)、浮点型(float)、字符串(string)、布尔型(boolean) 复合数据类型:数组(array)、对象(object)、callable(可调用) 特殊数据类型:资源类型(resource) 和 NULL 变量相关处理函数 is_bool($var)        判断是否为布尔型 is_int($var)    ...

    RancherLabs 评论0 收藏0
  • 数组方法find、filter、findIndex简介

    摘要:方法,意思为过滤,同样接收一个回调函数,该方法的使用场景是查找数组内符合指定条件的所有元素。 前言 ES6提供了很多新的API,数组对象的尤为实用,但是如果我们没有在相对应的开发环境下,很难对这些API有深入的了解,毕竟实践出真知。 find、filter、findIndex这三个方法都是对于数组的查找,其中返回的值略微相关,所以在这里做一个介绍。 Array.prototype.fi...

    Yangder 评论0 收藏0
  • COW机制已经相关

    摘要:机制已经相关类和我们知道是用于替代的,是线程安全的容器。如果使用迭代器来做上面的操作,会抛出异常。实现原理是线程安全容器相对于,底层通过复制数组的方式来实现。线程在线程迭代的间隙中将部分的数据修改了已经调用了。 COW机制已经相关类 Vector和SynchronizedList 我们知道ArrayList是用于替代Vector的,Vector是线程安全的容器。因为它几乎在每个方法...

    econi 评论0 收藏0
  • JS-Array

    摘要:没有循环循环次四属性属性属性表示数组元素的数量,的数组元素并不是连续的,有些索引的位置可能没有元素,所以属性并不能真正表示元素的数量,其值等于数组最大索引。 一、JS没有真正的数组 像C++,Java这些编程语言中数组元素分配的内存都是连续,这有利于性能提升,但是JS的数组不是这样的。它使用对象模拟数组,即对象属性为数字,并含有length属性。所以JS数组对象的内存不是连续的,同一般...

    madthumb 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<