数组:

1.Array.push()

在数组末尾添加元素并返回新的长度

let arr = ["张三","李四","王五"];
console.log(arr.push("赵六"));  //lenght为4
console.log(arr);  //["张三", "李四", "王五", "赵六"]

2.Array.pop()

删除最后一个元素,返回值是删除的元素

let arr = [1,2,3];
console.log(arr.pop());  // 返回值为3
console.log(arr);  // [1, 2]

3.Array.unshift()

在数组头部添加元素并返回新的长度和.push()相反

let arr = ["张三","李四","王五"];
console.log(arr.unshift("赵六")); // 赵六
console.log(arr) // ["赵六","张三", "李四", "王五"]

4.Array.shift()

删除数组第一个元素并返回和.pop()相反


let arr = [1,2,3];
console.log(arr.shift()); // 返回值为1
console.log(arr)        // [2, 3]

5.Array.splice(index,num,item)

添加或删除数组的元素并返回删除的数组
index(开始位置的下标)
num(删除的个数)
item(插入的元素)

let arr1 = ['a', 'b', 'c', 'd'];
console.log(arr.splice(2,0,1)); // 返回值[](未删除)
console.log(arr)// ["a", "b", 1, "c", "d"]

6.Array.slice(index1,index2)

选取数组一部分并生成新数组(但是不会改变原数组)
index1(开始的下标)
index2(结束的下标)


let arr1 = ['a', 'b', 'c', 'd'];
console.log(arr1.slice(1, 3));//返回值 ["b", "c"]
console.log(arr1);//原数组 ["a", "b", "c", "d"]

7.Array.concat(arr1,arr2…)

连接多个数组并返回

let arr1 = [1, 2, 3],arr2 = [4, 5, 6];
let arr = arr1.concat(arr2);
console.log(arr); //返回[1, 2, 3, 4, 5, 6]

8.Array.join(指定分割符)

将数组的元素拼接成字符串并返回


let arr = ["a", 1, "b", 2];
console.log(arr.join())     // "a,1,b,2"
console.log(arr.join("-"))  // "a-1-b-2"
console.log(arr)            // ["a", 1, "b", 2]

9.Array.toString()

将数组的元素拼接成字符串并返回类似于.join()但是不支持指定字符串分割

let arr = [1, 2, 3, 4, 5];
console.log(arr.toString())// 1,2,3,4,5

10.Array.forEach(fn, thisValue)

fn(必传) 有三个值1–v:当前元素,2–i当前元素索引,3–arr数组
thisValue(选传) this的指向

注意,使用thisValue是不能使用箭头函数否则this指向错误
该方法没有返回值


let myArr = [1,5,8]
myArr.forEach((v,i,arr)=>{console.log(v,i,arr)
})
//1  0  [1, 5, 8]
//5  1  [1, 5, 8]
//8  2  [1, 5, 8]

11.Array.map()

类似于.forEach(fn, thisValue)传参相同,但是.map()每次都会返回执行后结果组成的数组

let myArr = [1,5,8]
myArr.map((v,i,arr)=>{console.log(v,i,arr)
})
//4 1 0  [1, 5, 8]
//4 5 1  [1, 5, 8]
//4 8 2  [1, 5, 8]
// [undefined, undefined, undefined]

12.Array.filter(判断条件)

对数组的每个元素判断,符合条件返回组成新的数组


let arr = [1, 2, 3, 4, 5]
let bigNum = value => value > 3
let newArr = arr.filter(bigNum)
console.log(newArr)
// [4, 5] 满足条件的元素返回为一个新的数组

13.Array.every(判断条件)

对数组的每个元素判断,全部符合条件才返回true


let arr = [1, 2, 3, 4]
let flage1= value => value > 3
let flage2= value => value < 5
console.log(arr.every(flage1))
//false  不是所有都大于3
console.log(arr.every(flage2))
//true   是所有都小于5

14.Array.some(判断条件)

对数组的每个元素判断,一个符合条件就返回true,并且直接返回不会再对剩下的元素进行判断


let arr= [1, 2, 3]
let flage= value => value == 3
console.log(arr.some(flage)) //true

15.Array.reduce()

计算数组的和从左到右

let arr = [1, 2, 3, 4]
let add = (a, b) => a + b
console.log(arr.reduce(add))  // 10

16.Array.reduceRight()

计算数组的和从右到左

let arr = [1, 2, 3, 4]
let add = (a, b) => a + b
console.log(arr.reduce(add))  // 10

17.Array.sort()

不传参按照字母顺序排列(字符串UniCode码)

该方法会改变原始数组

let arr = ["dfc", "cf", "lol", "anf"]
console.log(arr.sort());   // ["anf", "cf", "dfc", "lol"]
console.log(arr)   // ["anf", "cf", "dfc", "lol"]

利用特性升序排列(降序同理)

let arr = [4, 2, 3, 6, 9, 1]
console.log(arr.sort((a, b)=> a-b))
// [1, 2, 3, 4, 6, 9] 

18.Array.reverse()

将数组顺序翻转(会改变原始数组)

let arr = [11, 12, 14, 13]
console.log(arr.reverse())  // [13, 14, 12, 11]
console.log(arr)  // [13, 14, 12, 11]

19.Array.find(判断条件)

判断数组元素,当条件为true时结束循环,返回该元素

let arr = [1, 2, 3, 5, 7]
let num = a => a>3
console.log(arr.find(num))  // 5
console.log(arr) // [1, 2, 3, 5, 7]

20.Array.findIndex(判断条件)

判断数组元素,当条件为true时结束循环,返回该元素的 索引 如果没有符合条件的元素返回-1

let arr = [1, 2, 3, 5, 7]
let big3 = a => a>3
console.log(arr.findIndex(big3))  // 3
console.log(arr)  // [1, 2, 3, 5, 7]

21.Array.includes(item)

判断数组是否含有传入的判断元素,有返回true,没有返回false

[1, 2, 3].includes(2);     // true
[1, 2, 3].includes(4);     // false

22.Array.indexOf(item,index)

判断数组是否含有传入的判断元素,有返回该元素的索引,没有返回-1

let arr = ["a", "b", "c", "d"]
console.log(arr.indexOf("c"))       // 2
console.log(arr.indexOf("b", 2))    // -1

23.Array.lastIndexOf(item,index)

判断数组是否含有传入的判断元素,有返回该元素的索引最大值,没有返回-1

let arr = ["a", "b", "c", "d","c"]
console.log(arr.indexOf("c"))       // 4
console.log(arr.indexOf("c", 2))    // 2
console.log(arr.indexOf("c", 7))    // -1

24.Array.isArray()

判断对象是否为数组,是返回true,不是返回false

let obj = {}
let arr = []
Array.isArray(obj)  // false
Array.isArray(arr)  // true

25.Array.valueOf()

返回数组对象的原始值

let arr = [1,2,3]
console.log(arr.valueOf())  //  [1, 2, 3]

26.Array.entries()、27.Array.keys()、28.Array.values() 三种遍历方式

26.entries :键值对的遍历
27.keys:键名的遍历
28.values:值的遍历

let arr = ["a", "b", "c"]
let item = arr.entries()
console.log(item.next().value)  // [0, "a"]
console.log(item.next().value)  // [1, "b"]
console.log(item.next().value)  // [2, "c"]
console.log(item.next().value)  // undefinedlet ikey = arr.keys()
console.log(ikey.next().value)  // 0
console.log(ikey.next().value)  // 1
console.log(ikey.next().value)  // 2
console.log(ikey.next().value)  // undefinedlet ivalue = arr.values()
console.log(ivalue.next().value)  // a
console.log(ivalue.next().value)  // b
console.log(ivalue.next().value)  // c
console.log(ivalue.next().value)  // undefined

29.Array.flat(num)

将嵌套的数组分离成一个数组,num是嵌套的层次,num为Infinity就是不管嵌套几层

[1, 2, [3, 4]].flat()      // [1, 2, 3, 4]
[1, 2, [3, [4, 5]]].flat() // [1, 2, 3, [4, 5]]
[1, 2, [3, [4, 5]]].flat(2)// [1, 2, 3, 4, 5]
[1, [2, [3]]].flat(Infinity) // [1, 2, 3]
// 如果原数组有空位,flat()方法会跳过空位。
[1, 2, , 4, 5].flat()       // [1, 2, 4, 5]

30.Array.flatMap()

map()和flat()方法的结合,先执行map()后执行flat()

[2, 3, 4].flatMap((x) => [x, x * 2])
// [2, 4, 3, 6, 4, 8]

31.Array.fill()

将一个固定的元素替换数组

let arr = ["a", "b", "c", "d", "e"]
arr.fill("dd")
console.log(arr)  // ["dd", "dd", "dd", "dd", "dd"]
arr.fill("a", 1, 3)
console.log(arr)  // ["dd", "a", "a", "dd", "dd"]

32.Array.copyWithin()

将数组的指定索引位置复制到数组另外一个索引位置

  • target:必需。复制到指定目标索引位置。
  • start:可选。元素复制的起始位置。
  • end:可选。停止复制的索引位置 (默认为 array.length)。如果为负值,表示倒数。
let arr = ["a", "b", "c", "d", "e", "f"];
arr.copyWithin(2, 0, 2);
console.log(arr)  // ["a", "b", "a", "b", "e", "f"]

33.Array.constructor

返回对象的构造函数

[1,2,3].constructor
// Array() { [native code]

34.Array.form()

通过字符串创建一个数组。
用于通过拥有 length 属性的对象或可迭代的对象来返回一个数组。如果对象是数组返回 true,否则返回 false。

Array.from("abcdef");
// ["a", "b", "c", "d", "e", "f"]

javaScript基础数组属性方法相关推荐

  1. JavaScript比较数组的方法

    JavaScript比较数组的方法 1.比较两个对象数组,删除重复项,根据属性合并对象 我们确实需要比较两个不同的对象数组,并希望在两个对象匹配特定属性值的情况下合并这两个对象.可以使用filter( ...

  2. javascript操作数组的方法大全

    javascript操作数组的方法大全 一.ES5数组的方法 1.Array.isArray() 用来判断是否为数组 var arr = [1, 2, 3, 4, 5]; var obj = {}; ...

  3. 前端开发:JavaScript合并数组的方法

    前言 在前端开发的时候,对于数据处理是很重要的一块,尤其是要根据实际的业务需求来处理数据,有很强的兼容性要求.而且有些时候后端提供的数据和实际的业务需求数据是有偏差的,所以前端在拿到后台返回的数据之后 ...

  4. JavaScript 中数组 sort() 方法的基本使用

    在日常的代码开发中,关于数组排序的操作可不少,JavaScript 中可以调用 sort 方法对数组进行快速排序. 今天,就数组的 sort 方法来学习一下,避免日后踩坑的悲惨遭遇. 概念 sort ...

  5. JavaScript中数组对象方法总结

    目录 如何创建一个数组 数组的类型转换与检测 解构赋值及三点运算符(展开语法) 数据出栈入栈操作 splice与slice实现数组的增删改查 清空数组的多种操作 拆分和合并 数组的查找 include ...

  6. JavaScript 常用数组函数方法专题

    1. 由字符串生成数组 split() 分割字符串,并将分割的部分作为一个元素保存在一个新建的数组中. var str1 = "this is an emample to using the ...

  7. 前端基础——数组的方法

    push() 在数组末尾添加元素,接收一个或多个参数 unshift() 在数组首位添加元素,接收一个或多个参数 pop() 删除数组末尾元素 shift() 删除数组第一个元素 splice() 在 ...

  8. js判断数组的方法(JavaScript判断数组的方法,7种),实操详细

    var arr = [ ]; 1.实例的__proto__属性(IE不支持) arr.__proto__ === Array.prototype //true 2.实例的constructor属性 a ...

  9. Javascript基础 对象与方法的识别

    2019独角兽企业重金招聘Python工程师标准>>> 最佳的方法是你先确定某一段代码具备什么功能,然后搞清楚  浏览器具备什么功能. 例如,我们知道有些浏览器支持图片替换,有些则不 ...

最新文章

  1. VMWARE 之 ESXI 主机标准安装
  2. 蓝桥练习-算法训练 P0505
  3. C#结构体中数组的分配
  4. [置顶] Java面试题全集(中)
  5. 搞懂进程组、会话、控制终端关系,才能明白守护进程干嘛的?
  6. 恕我直言,很多小样本学习的工作就是不切实际的
  7. IOC的原理及手动实现
  8. 优麒麟这样的linux版本,百度网盘 Linux 版发布,搭配优麒麟运行更完美!
  9. C++判断一个序列是否为堆(最大堆、最小堆)
  10. windows c语言 socket通信
  11. IGBT的绘制与逆变器的绘制-Visio制图总结【电控类】(三)
  12. 关于身份证号两个格式转换的问题
  13. python内置函数什么意思_python内置函数是什么
  14. 什么是GB18030编码?
  15. 使用Persimmon UI Builder 开发的一些技巧和注意事项 -- (RT-thread 柿饼UI)
  16. 3.11 污点和容忍度
  17. nginx根据项目名实现内网地址转发
  18. scanf函数、冒泡排序和不定长度数组的使用 —— malloc
  19. Java集合面试题整理(超详细)
  20. Git从库中移除已删除大文件

热门文章

  1. java病人健康档案管理电子病历系统ssm
  2. 3-meshing-网格划分-二
  3. java web网站 js 简体繁体切换_通过JS实现网站繁体简体互换
  4. 数据挖掘竞赛利器1-Embeding方式
  5. Spring Boot - security 实战与源码分析
  6. Android开发学习资源之(三)
  7. 泉州计算机中专学校,2021泉州中专学校排名榜
  8. UC浏览器版爱情买卖
  9. 20岁到30岁,他从实习生做到百度最高决策层!
  10. NSIS教程(9): NSIS+duilib仿QQ安装包