javascript数组里的27个方法总合详解

目录
  • 1.concat()
  • 2.copyWithin()
  • 3.Object.entries()
  • 4.every()
  • 5.fill()
  • 6.filter()
  • 7.find()和findIndex()
  • 8.forEach()
  • 9.from()
  • 10.includes()
  • 11.indexOf()和lastIndexOf()
  • 12.isArray()
  • 13.join()
  • 14.keys()
  • 15.map()
  • 16.pop()
  • 17.push()
  • 18.reduce()和reduceRight()
  • 19.reverse()
  • 20.shift()
  • 21.slice()
  • 22.some()
  • 23.sort()
  • 24.splice()
  • 25.toString()
  • 26.unshift
  • 27.valueOf()
  • 总结

1.concat()

concat() 方法用于连接两个或多个数组。方法不会更改现有数组,而是返回一个新数组,其中包含已连接数组的值。

var str1 = [1,2,3,4,5,6]
var str2 = ['a','b','c','d','e']
console.log(str1.concat(str2));// [1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd', 'e']

2.copyWithin()

copyWithin() 复制数组的一部分数据覆盖到数组的另一个位置。会修改数组,但是不会修改数组的长度。

var str1 = [1,2,3,4,5,6]
// 从索引为0开始复制,到索引1结束(不包括结束位置),替换到索引为2的位置,
console.log(str1.copyWithin(2,0,1));    //[1, 2, 1, 4, 5, 6]
// 因为省略一个参数,所以从索引为3位置后的所有元素,从索引为1开始复制替换
console.log(str1.copyWithin(1,3));    //[1, 4, 5, 6, 5, 6]

3.Object.entries()

返回一个数组,其元素是与直接在object上找到的可枚举属性键值对相对应的数组

var str3 = { 100: 'a', 2: 'b', 7: 'c' };
 console.log(Object.entries(str3));  //['2', 'b']['7', 'c']['100', 'a']

4.every()

every()方法用来判断数组的所有元素是否都满足指定的条件。

var str1 = [1,2,3,4,5,6]
// 创造一个函数来作为判断条件
function checkAdult(value,index) {
     return value > 0;
 }
// every() 方法用来判断数组的所有元素是否都满足指定的条件。
console.log(str1.every(checkAdult));    //true

5.fill()

fill()方法用来把数组所有元素替换成静态元素

var str1 = [1,2,3,4,5,6]
console.log(str1.fill(1));  //[1, 1, 1, 1, 1, 1]

6.filter()

它用于把Array的某些元素过滤掉,然后返回剩下的元素。

var str1 = [1,2,3,4,5,6]
console.log(str1.filter(function(x){return x > 2}));    //[3, 4, 5, 6]

7.find()和findIndex()

find()返回数组中第一个通过测试的元素的值。

findIndex()返回数组中通过测试的第一个元素的索引。

var str1 = [1,2,3,4,5,6]
console.log(str1.find(function(x){return x > 2}));  //3
console.log(str1.findIndex(function(x){return x > 2}));  //2

8.forEach()

forEach()为每个数组元素都调用函数。

var str1 = [1,2,3,4,5,6]
str1.forEach(x => console.log(x));    //依次输出123456

9.from()

以对象创建数组。

console.log(Array.from('string'));  //['s', 't', 'r', 'i', 'n', 'g']

10.includes()

includes()检查数组是否包含指定的元素。第二个参数可以指定从哪个位置开始检测

var str1 = [1,2,3,4,5,6]
console.log(str1.includes(2,0));  //true

11.indexOf()和lastIndexOf()

indexOf()在数组中搜索元素并返回其索引。第二个参数可以指定从哪个位置开始搜索

lastIndexOf()在数组的末尾开始搜索元素并返回其索引。第二个参数可以指定从哪个位置开始搜索

var str1 = [1,2,3,4,5,6]
console.log(str1.indexOf(2,0));  //1
console.log(str1.lastIndexOf(2,5));     //1

12.isArray()

可以用来判断是否为数组对象

var str1 = [1,2,3,4,5,6]
console.log(Array.isArray(str1));  //true

13.join()

将数组的所有元素连接成一个字符串。元素将由指定的分隔符分隔。默认分隔符是逗号 (,)。

var str2 = ['a','b','c','d','e']
const a = str2.join()
console.log(a);         //a,b,c,d,e
const a = str2.join('')
console.log(a);         //abcde

14.keys()

返回一个数组,数组里的属性是数组所对应的键

var str3 = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.keys(str3));     //['2', '7', '100']
//字符串则返回索引
console.log(Object.keys("string"));     //['0', '1', '2', '3', '4', '5']

15.map()

为每个数组元素调用函数的结果来创建新数组。

var str1 = [1,2,3,4,5,6]
const a = str1.map(item => item * 10)
console.log(a);     // [10, 20, 30, 40, 50, 60]

16.pop()

删除数组的最后一个元素,并返回该元素。方法会改变数组的长度。

var str1 = [1,2,3,4,5,6]
console.log(str1.pop(), str1);     // 6  ,  [1, 2, 3, 4, 5]

17.push()

将新元素添加到数组的末尾,并返回新的长度。方法会改变数组的长度。

var str1 = [1,2,3,4,5,6]
console.log(str1.push(7), str1);     // 7 , [1, 2, 3, 4, 5, 6, 7]

18.reduce()和reduceRight()

reduce()执行顺序是从左到右                reduceRight()执行顺序是从右到左

为数组中的每一个元素依次执行回调函数,一般用于累加器。

有四个参数,第一个为初始值, 或者计算结束后的返回值。第二个为当前元素。第三个为当前元素的索引。第四个为当前元素所属的数组对象。

initiavalue:当数组为空时,可以设置传递给函数的初始值,放在对象的后面

var str1 = [1,2,3,4,5,6]
// 累加器的使用
console.log(str1.reduce(function(total,num,index,add){return total+num}));// 21
//initiavalue的使用
var arr=[]
console.log(arr.reduce(function(total){return total},0));    //0

19.reverse()

反转数组中元素的顺序。

var str1 = [1,2,3,4,5,6]
console.log(str1.reverse());     // [6, 5, 4, 3, 2, 1]

20.shift()

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

var str1 = [1,2,3,4,5,6]
console.log(str1.shift(),str1);     // 1 , [2, 3, 4, 5, 6]

21.slice()

选择数组的一部分,并返回新数组。

var str1 = [1,2,3,4,5,6]
// 两个参数 从索引为1开始到索引为3结束,不包括结束位置,形成新数组
console.log(str1.slice(1,3));     //  [2, 3]
// 一个参数 表示从索引为1开始的所有元素形成一个新数组
console.log(str1.slice(1));     //  [2, 3, 4, 5, 6]

22.some()

检查数组中的任何元素是否通过测试。和every()差不多

some如果遇到 true 就不在执行了。    如果都为 false 返回false。        不会改变原数组

var str1 = [1,2,3,4,5,6]
function some(item,index,array){
return item>5
}
console.log(str1.some(some));  //true
function some(item,index,array){
return item>7
}
console.log(str1.some(some));  //false

23.sort()

srot()如果不带参数,是将按字母顺序对数组中的元素进行排序,也就是是按照字符编码的顺序进行排序。

如果为number类型其实也不是按正常的从小到大排序,更像是根据元素的第一位数字的大小排序。

如果想正常进行从大到小  从小到大的排序。可以进行比较值的大小来实现。

从小到大,a-b的含义:a-b大于0,说明a大,则把a放在在后面。a-b小于0,说明b大,则b在后面。如果a-b等于0,则不变。        从大到小就是上面的相反,就不说了(不想写了,程序员的美德就是偷懒)

至于为什么是a - b,b - a可以去看这篇文章https://www.jb51.net/article/238275.htm

var arr1 = ['a', 'd', 'c', 'b'];
arr.sort();  //['a', 'b', 'c', 'd']
var arr2 = [10, 5, 40, 25, 100, 1];
arr2.sort(); //[1, 10 ,100, 25, 40, 5]
//从小到大的排序
var arr2 = [10, 5, 40, 25, 100, 1];
arr2.sort((a,b) => a-b)
console.log(arr2);    // [1, 5, 10, 25, 40, 100]
//从大到小的排序
var arr2 = [10, 5, 40, 25, 100, 1];
arr2.sort((a,b) => b-a)
console.log(arr2);    // [100, 40, 25, 10, 5, 1]

24.splice()

从数组中添加/删除元素。

var str1 = [1,2,3,4,5,6]
// 删除,从索引为1开始,删除2个
console.log(str1.splice(1,2), str1);     // [2, 3] , [1, 4, 5, 6]
// 添加,从索引为1开始到索引为2开始替换为'0'
console.log(str1.splice(1,2,'0','0'), str1);     // [2, 3] , [1, '0', '0', 4, 5, 6]

25.toString()

将数组转换为字符串,并返回结果。

var str1 = [1,2,3,4,5,6]
console.log(str1.toString(), str1);     // 1,2,3,4,5,6  [1, 2, 3, 4, 5, 6]

26.unshift

将新元素添加到数组的开头,并返回新的数组长度值。

var str1 = [1,2,3,4,5,6]
console.log(str1.unshift(0), str1);     // 7  , [0, 1, 2, 3, 4, 5, 6]

27.valueOf()

valueOf() 方法返回其自身。

var str1 = [1,2,3,4,5,6]
str1.push(7)
console.log(str1.valueOf(),str1);     //  [1, 2, 3, 4, 5, 6, 7] , [1, 2, 3, 4, 5, 6, 7]

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • JavaScript判断数组的方法总结与推荐

    目录 前言 根据构造函数判断(妈妈) instanceof constructor 根据原型对象判断(爸爸) __ proto __ Object.getPrototypeOf() Array.prototype.isPrototypeOf() 根据 Object 的原型对象判断(祖先) Object.prototype.toString.call() Array.isArray() 总结 前言 无论在工作还是面试中,我们都会遇到判断一个数据是否为数组的需求,今天我们就来总结一下,到底有多少方法

  • 一起来了解javascript数组的方法

    目录 1.push 2.pop 3.unshift() 4.shift() 5.concat() 6.reverse() 7.sort( ) 8.join() 9.slice() 10.splice() 总结 1.push 在数组末尾添加一个或者多个元素 var arr = [1,2,3,4]; arr.push(5); console.log(arr);// [1, 2, 3, 4, 5] arr.push(6,7); console.log(arr);//[1, 2, 3, 4, 5, 6,

  • javascript的数组方法大全

    目录 1:concat(); 2:join(); 3:pop(); 4:shift(); 5:unshift(); 6:push(); 7:reverse(); 8:sort(); 8.1: 8.2: 8.3:排序问题 9:slice(); 10:splice() 11:toString(); 12:valueOf(); 13:IndexOf(); 14:lastIndexOf(); 15:forEach(); 16:map(); 17:filter(); 18:every(); 19:some

  • Javascript数组常用方法你都知道吗

    我用这些方法主要从五个方面去学习. 1.方法是干什么的. 2.谁能用 (当然是数组啦). 3.有没有返回值,返回值是什么. 4.修不修改原来的对象. 5.如何使用. 接下来就是干货了. 1.push 向数组内添加一个或多个元素,添加到数组的最后面,方法返回值是新数组的长度. arr.push(200) arr.push(200,2,32) 2.pop 删除数组末尾的一个元素,不需要传参,方法返回值是被删除的元素 . arr.pop() 3.unshift 向数组中添加一个或多个元素,添加到最前面

  • JS一维数组转化为三维数组方法

    有人提问想要将一维数组转化为三位数组的需求,下面就给提问的的小伙伴安排上 下面是后端同学返给我们的一维数组数据格式:     [{       '品牌': 'xiaomi', '机型': '10', '配置': '512'     },     {       '品牌': 'xiaomi', '机型': '10', '配置': '128'     },     {       '品牌': 'xiaomi', '机型': '11', '配置': '128'     },     {       '

  • javascript数组里的27个方法总合详解

    目录 1.concat() 2.copyWithin() 3.Object.entries() 4.every() 5.fill() 6.filter() 7.find()和findIndex() 8.forEach() 9.from() 10.includes() 11.indexOf()和lastIndexOf() 12.isArray() 13.join() 14.keys() 15.map() 16.pop() 17.push() 18.reduce()和reduceRight() 19

  • JavaScript中自带的 reduce()方法使用示例详解

    1.方法说明 , Array的reduce()把一个函数作用在这个Array的[x1, x2, x3...]上,这个函数必须接收两个参数,reduce()把结果继续和序列的下一个元素做累积计算,其效果就是: [x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4) 2. 使用示例 'use strict'; function string2int(s){ if(!s){ alert('the params empty'); return; } if

  • JavaScript数组常用的增删改查与其他属性详解

    数组的增删改查 数组的插入 push()尾部插入 var arr2 = [1, 2, 3] arr2.push(4, 5, 6) console.log(arr2) //[1,2,3,4,5,6] unshift()头部插入 var arr3 = [1, 2, 3] arr3.unshift(4, 5, 6) console.log(arr3) //[4, 5, 6, 1, 2, 3] splcie 在任意位置内插入,或删除 arr.splice(n,m,x)从索引n开始删除m个元素,把新增的元

  • javascript跨域的4种方法和原理详解

    下表给出了相对http://store.company.com/dir/page.html同源检测的结果: 要解决跨域的问题,我们可以使用以下几种方法: 一.通过jsonp跨域 在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的.但是,在页面上引入不同域上的js脚本文件却是可以的,jsonp正是利用这个特性来实现的. 比如,有个a.html页面,它里面的代码需要利用ajax获取一个不同域上的json数据,假设这个json数据地址是http://example.com

  • JavaScript通过join函数连接数组里所有元素的方法

    本文实例讲述了JavaScript通过join函数连接数组里所有元素的方法.分享给大家供大家参考.具体实现方法如下: <script type="text/javascript"> var days = ["Sunday","Monday","Tuesday","Wednesday", "Thursday","Friday","Saturday&

  • JavaScript去除数组里重复值的方法

    本文实例讲述了JavaScript去除数组里重复值的方法.分享给大家供大家参考.具体如下: var unique = function(origArr) { var newArr = [], origLen = origArr.length, found, x, y; for ( x = 0; x < origLen; x++ ) { found = undefined; for ( y = 0; y < newArr.length; y++ ) { if ( origArr[x] === n

  • JavaScript数组前面插入元素的方法

    本文实例讲述了JavaScript数组前面插入元素的方法.分享给大家供大家参考.具体如下: JS数组带有一个unshift方法可以再数组前面添加若干个元素,下面是详细的代码演示 复制代码 代码如下: <!DOCTYPE html> <html> <body> <p id="demo">Click the button to add elements to the array.</p> <button onclick=&q

  • JavaScript数组去重的两种方法推荐

    1.数组去重: Array类型并没有提供去重复的方法,如果要把数组的重复元素干掉,那得自己想办法: 方法一:利用indexOf方法: var aa=[1,3,5,4,3,3,1,4] function arr(arr) { var result=[] for(var i=0; i<arr.length; i++){ if(result.indexOf(arr[i])==-1){ result.push(arr[i]) } } console.log(result) } arr(aa) 方法二:

  • JavaScript数组去重的五种方法

    javascript数组去重是一个比较常见的需求,解决方法也有很多种,网上都可以找到答案的,下面小编给大家整理了一份关于同类型的数组去重的方法,先给大家介绍下简单实现思路. 思路: 遍历数组,一一比较,比较到相同的就删除后面的 遍历数组,一一比较,比较到相同的,跳过前面重复的,不相同的放入新数组 任取一个数组元素放入新数组,遍历剩下的数组元素任取一个,与新数组的元素一一比较,如果有不同的,放入新数组. 遍历数组,取一个元素,作为对象的属性,判断属性是否存在 1. 删除后面重复的: functio

  • JS删除数组里的某个元素方法

    删除数组指定的某个元素 首先可以给JS的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为: Array.prototype.indexOf = function(val) { for (var i = 0; i < this.length; i++) { if (this[i] == val) return i; } return -1; }; 然后使用通过得到这个元素的索引,使用js数组自己固有的函数去删除这个元素: 代码为: Array.prototype.remove

随机推荐