1.length 数组长度

计算数组的长度

var arr=[1,2,3,4,5];
console.log(arr.length);//输出结果是5

2. push() 添加元素

向数组尾部添加新元素,返回值是数组的新长度

var arr=[1,2,3,4,5];
console.log(arr.push(6,7));//输出结果是7
console.log(arr);//输出结果是[1,2,3,4,5,6,7]

3. pop() 删除元素

删除并返回最后一个元素

var arr = [1, 2, 3, 4, 5];
console.log(arr.pop());//输出结果是5
console.log(arr);//输出结果是[1,2,3,4]

4. reserve() 颠倒顺序

将数组元素颠倒顺序,数组本身发生了变化

var arr = [1, 2, 3, 4, 5];
console.log(arr.reverse());//输出结果是[5,4,3,2,1]
console.log(arr);//输出结果是[5,4,3,2,1]

5. join() 数组转为字符串

把数组转为字符串。即把数组所有元素通过指定的分隔符变革一个字符串,数组本身不发生变化。

var arr = [1, 2, 3, 4, 5];
console.log(arr.join(','));//输出结果是1,2,3,4,5
console.log(arr);//输出结果是[1, 2, 3, 4, 5]

6. map() 操作元素

将数组中的每个元素调用一个提供的函数,结果作为一个新的数组返回,并没有改变原来的数组。=>是es6的箭头函数,在后面会介绍。

对数组进行遍历

var arr = [1, 2, 3, 4, 5];
arr.map(item => {
console.log(item)
})

对数组内容进行操作后返回新数组

var arr = [1, 2, 3, 4, 5];
console.log(arr.map(item => item*2)) //输出结果是[2, 4, 6, 8, 10]
console.log(arr) //输出结果是[1, 2, 3, 4, 5]

7. forEach() 遍历元素

将数组中的每个元素执行提供的函数,没有返回值,并没有改变原来的数组,常用来遍历数组。

var arr = [1, 2, 3, 4, 5];
arr.forEach(item => {
console.log(item)
})

8. filter() 元素过滤

将所有元素进行判断,将满足条件的元素作为一个新数组返回,不会改变原始数组。

实例1:过滤所有的奇数

var arr = [1, 2, 3, 4, 5];
//过滤出奇数
console.log(arr.filter(item => {
return item%2==1
})) //输出结果是[1, 3, 5]
console.log(arr)//输出结果是 [1, 2, 3, 4, 5]

实例2:判断数组中是否包含某个值。当包含时会返回此值的数组,不存在时返回空数组

var arr = [1,5,4,3]
console.log(arr.filter(item => item==3))//[3]

实例3:过滤掉null,undefined,空字符串

var arr2 = [1, null, 2, '', 'm', undefined, 222]
console.log(arr2.filter(item => item))//[ 1, 2, 'm', 222 ]

实例4:数组去重。index表示索引,self表示filter函数本身。

var arr = [1, 2, 2, 3, 4, 5, 5, 6, 7, 7, 8, 8, 0, 8, 6, 3, 4, 56, 2];
var arr2 = arr.filter((item, index, self) => self.indexOf(item) === index)
console.log(arr2); //[1, 2, 3, 4, 5, 6, 7, 8, 0, 56]

9. every() 元素判断

将所有元素进行判断,如果所有元素都满足判断条件,则返回true,否则为false。常作为所有条件判断。

var arr = [1, 2, 3, 4, 5];
var morethan4 = value => value > 4
var lessthan6 = value => value < 6
console.log("arr数组所有元素都大于4吗?" + arr.every(morethan4))//输出结果是 arr数组所有元素都大于4吗?false
console.log("arr数组所有元素都小于6吗?" + arr.every(lessthan6))//输出结果是 arr数组所有元素都小于6吗?true

10. some() 元素判断

将所有元素进行判断,如果存在元素满足判断条件,则返回true,若所有元素都不满足判断条件,则返回false。常作为部分条件判断。

var arr = [1, 2, 3, 4, 5];
var morethan4 = value => value > 4
var morethan6 = value => value > 6
console.log("arr数组存在元素大于4吗?" + arr.some(morethan4))//输出结果是arr数组存在元素大于4吗?true
console.log("arr数组存在元素大于6吗?" + arr.some(morethan6))//输出结果是arr数组存在元素大于6吗?false

11. reduce() 操作内容

所有元素都调用返回函数,返回值为最后结果,传入的值必须是函数类型。

var arr = [1, 2, 3, 4, 5];
//遍历元素,将它们累加后返回
console.log(arr.reduce((a,b) => {
return a+b
}))//输出结果是15

12. shift() 删除元素

删除数组中的第一个元素并返回。

var arr = [1, 2, 3, 4, 5];
console.log(arr.shift())//输出结果是 1
console.log(arr)//输出结果是[2, 3, 4, 5]

13. unshift() 添加元素

将一个或多个元素添加到数组的开头,并返回数组的长度。

var arr = [1, 2, 3, 4, 5];
console.log(arr.unshift(6,7))//输出结果是7
console.log(arr)//输出结果是[1, 2, 3, 4, 5, 6, 7]

14. concat() 连接数组

将多个数组进行拼接,返回一个新数组。

var arr = [1, 2, 3, 4, 5]
var arr2=[6, 7]
console.log(arr.concat(arr2))//输出结果是[1, 2, 3, 4, 5, 6, 7]

15. toString() 数组转字符串

将数组转为字符串。

var arr = [1, 2, 3, 4, 5]
console.log(arr.toString())//输出结果是1, 2, 3, 4, 5

16. splice(开始位置, 删除的个数,元素)

万能的方法,可实现数组的增删改。常用于删除指定元素。

新增元素时,删除个数为0:

var arr = [1, 2, 3, 4, 5]
arr.splice(1,0,6)//在索引为1的位置插入元素
console.log(arr)//输出结果是[1, 6, 2, 3, 4, 5]

删除元素时,元素不写:

var arr = [1, 2, 3, 4, 5]
arr.splice(1,1)//删除索引为1的元素
console.log(arr)//输出结果是[ 1, 3, 4, 5]

修改元素时,删除个数为1:

var arr = [1, 2, 3, 4, 5]
arr.splice(1,1,6)//把索引为1的元素替换为6
console.log(arr)//输出结果是[ 1,6, 3, 4, 5]

17. Array.isArray() 判断是否数组

判断是否是一个数组

var arr = [1, 2, 3, 4, 5]
//判断是否是一个数组
console.log(Array.isArray(arr))//输出结果是true
console.log(Array.isArray({'id':1}))//输出结果是false

18. sort() 数组排序

对数组的内容进行排序,可以数字,字符串数字,字母等,会按照Unicode进行升序排序。数组内容已经变成排序后的结果!

console.log([5,6,9,1,2,4].sort())//[1, 2, 4, 5, 6, 9]
console.log(['5','6','9','1','2','4'].sort())//["1", "2", "4", "5", "6", "9"]
console.log(['b','f','a','A','C','4'].sort())//["4", "A", "C", "a", "b", "f"]

下面看一个特例

console.log([5,1,10,20,2].sort())//[1, 10, 2, 20, 5]

结果出乎意料,10竟然在2前面,原因就是它是根据Unicode来排序。对于数字的这种情况,需要些一个方法,然后给sort调用:

function compare(m,n){
if (m < n) return -1
else if (m > n) return 1
else return 0
}
const arr = [5,1,10,20,2]
console.log(arr.sort(compare))//[ 1, 2, 5, 10, 20 ]

通过这种方式,自定义比较方式,就可以完美的解决这个问题。对于字符串数字也是类似。

JS数组的常用属性或方法的更多相关文章

  1. Node.js process 模块常用属性和方法

    Node.js是常用的Javascript运行环境,本文和大家发分享的主要是Node.js中process 模块的常用属性和方法,希望通过本文的分享,对大家学习Node.js http://www.m ...

  2. js dom 的常用属性和方法

    1.对象集合:      (1).all[];      (2).images[];      (3).anchors[];      (4).forms[];      (5).links[];   ...

  3. js数组定义、属性及方法(push/pop/unshfit/shfit/reverse/sort/slice/splice/indexOf/lastIndexOf)

    数组 一.定义数组 * 字面量方式  var 数组名称 = [ value,value,... ] * 构造函数方式 var 数组名称 = new Array(value,value,...):  v ...

  4. UITableView常用属性和方法 - 永不退缩的小白菜

    UITableView常用属性和方法 - 永不退缩的小白菜 时间 2014-05-27 01:21:00  博客园精华区原文  http://www.cnblogs.com/zhaofucheng11 ...

  5. UIView的一些常用属性和方法

    UIView的一些常用属性和方法 1. UIView的属性 UIView继承自UIResponder,拥有touches方法. - (instancetype)initWithFrame:(CGRec ...

  6. SVG DOM常用属性和方法介绍(1)

    12.2  SVG DOM常用属性和方法介绍 将以Adobe SVG Viewer提供的属性和方法为准,因为不同解析器对JavaScript以及相关的属性和方法支持的程度不同,有些方法和属性是某个解析 ...

  7. 第190天:js---String常用属性和方法(最全)

    String常用属性和方法 一.string对象构造函数 /*string对象构造函数*/ console.log('字符串即对象');//字符串即对象 //传统方式 - 背后会自动将其转换成对象 / ...

  8. UIView常用属性与方法/UIKit继承结构

    UIView常用属性与方法 @interface UIView : UIResponder<NSCoding, UIAppearance, UIAppearanceContainer, UIDy ...

  9. ios基础篇(四)——UILabel的常用属性及方法

    UILabel的常用属性及方法:1.text //设置和读取文本内容,默认为nil label.text = @”文本信息”; //设置内容 NSLog(@”%@”, label.text); //读 ...

随机推荐

  1. 学生信息管理系统总结——student数据库中表关系分析

    说到关系,那就不得不提两个东西: 1.E-R图,也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型.属性和联系的方法,用来描述现实世界的概念模型 2.关系模 ...

  2. 2019牛客暑期多校训练营(第二场)A Eddy Walker(打表求概率)

    题意:给你n,m分别表示 长度为n的环 和最后走到的位置m 问从0点出发每次都能能往前或者往后走 求最后在m点的概率思路:我们可以先打表模拟一下 发现好像每个点的概率大概都是1/(n-1) 打表代码: ...

  3. 【uva 1312】Cricket Field(算法效率--技巧枚举)

    题意:一个 L*R 的网格里有 N 棵树,要求找一个最大空正方形并输出其左下角坐标和长.(1≤L,R≤10000, 0≤N≤100) 解法:枚举空正方形也就是枚举空矩阵,先要固定一个边,才好继续操作. ...

  4. Broken robot CodeForces - 24D (三对角矩阵简化高斯消元+概率dp)

    题意: 有一个N行M列的矩阵,机器人最初位于第i行和第j列.然后,机器人可以在每一步都转到另一个单元.目的是转到最底部(第N个)行.机器人可以停留在当前单元格处,向左移动,向右移动或移动到当前位置下方 ...

  5. 2019牛客暑期多校训练营(第四场)k题、j题

    传送门 k题: 题意: 给你一串由数字构成的字符串,你从这个字符串中找子字符串使这个字符串是300的倍数 题解: 这道题和第三场的B题极其相似 首先可以把是三百的倍数分开,必须要是100和3的倍数 是 ...

  6. hdu4325 Flowers

    Problem Description As is known to all, the blooming time and duration varies between different kind ...

  7. bfs输出路径 && 最短路(迪杰斯特拉)输出路径

    问题描述 解决方法 1.像第一个问题那就是最短路问题(我代码采用迪杰斯特拉算法)实现 2.换乘次数最少,那就用bfs广搜来寻找答案.但是我的代码不能保证这个最少换乘是最短路程 代码 1 #includ ...

  8. LInux 终端命令

    删除目录: 绝对路径开头以"/"开始之后跟着根目录或家目录 删除后不会在垃圾站中 树的顶部那个'.'代表当前目录 用mv命令对一个存在文件重命名 这个more关键字一次性显示不完的 ...

  9. WPF 之路由事件和附加事件(六)

    一.消息驱动与直接事件模型 ​ 事件的前身是消息(Message).Windows 是消息驱动的系统,运行其上的程序也遵循这个原则.消息的本质就是一条数据,这条消息里面包含着消息的类别,必要的时候还记 ...

  10. poj-3046 Ant Counting【dp】【母函数】

    题目链接:戳这里 题意:有A只蚂蚁,来自T个家族,每个家族有ti只蚂蚁.任取n只蚂蚁(S <= n <= B),求能组成几种集合? 这道题可以用dp或母函数求. 多重集组合数也是由多重背包 ...