梳理总结25JavaScript数组操作方法实例

目录
  • 1.删除数组重复项
  • 2. 获取数组的片段
  • 3.Array.from 达到 .map 的效果
  • 4.置空数组
  • 5. 将数组转换为对象
  • 6. 用数据填充数组
  • 7. 数组合并
  • 8.求两个数组的交集
  • 9.从数组中删除虚值
  • 10. 从数组中获取随机值
  • 11.反转数组
  • 12 lastIndexOf() 方法与indexOf()方法
  • 13.对数组中的所有值求和
  • 14.数组的遍历
  • 15.数组的映射
  • 16.数组的拷贝
  • 17.数组元素的查找
  • 18.查询数组
  • 19.数组的过滤
  • 20.数组的插入
  • 21.删除数组元素
  • 22.清空数组
  • 23.填充数组
  • 24. 数组的扁平化
  • 25.数组的排序

1.删除数组重复项

var array=[1,3,4,5,6,4,3]
var setArray1=Array.from(new Set(array))
console.log(setArray1) // [1, 3, 4, 5, 6]
var setArray2=[...new Set(array)]
console.log(setArray2) // [1, 3, 4, 5, 6]

2. 获取数组的片段

array.splice(start、remove or update、replace value),从数组索引哪里开始、操作多少个元素、可选项:替换值。

var array=[1,2,3,4,5,6]
array.splice(0,3,11,22,33) // [1, 2, 3]
console.log(array) // [11, 22, 33, 4, 5, 6]
var array=[1,2,3,4,5,6]
array.splice(0,3,11,22) // [1, 2, 3]
console.log(array) // [11, 22, 4, 5, 6]
var array=[1,2,3,4,5,6]
array.splice(0,1) // [1]
console.log(array) // [2, 3, 4, 5, 6]
var array=[1,2,3,4,5,6]
array.splice(2) // [3, 4, 5, 6]
console.log(array) //[1, 2]

3.Array.from 达到 .map 的效果

var array=[{name:"one",value:1},{name:"two",value:2},{name:"three",'value':3}]
Array.from(array,({name}) => name)
console.log(array) // ["one", "two", "three"]
Array.from(array,({value}) => value)
console.log(array) // [1, 2, 3]

4.置空数组

var array=[1,2,3,4,5,6]
array.length=0
console.log(array) // []

5. 将数组转换为对象

var array=['one','two','three']
var obj={...array}
console.log(obj) // {0: "one", 1: "two", 2: "three"}

6. 用数据填充数组

var array=new Array(10).fill(0)
console.log(array)// [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

7. 数组合并

array.concat() ,concat()方法创建一个新的数组,而不改变原来的数组

array.concat( ...array1,...array2,...]) 接受多个要连接的数组。

var array1=[1,2,3]
var array2=[4,5,6]
var array=[...array1,...array2]
console.log(array) // [1, 2, 3, 4, 5, 6]
var array=array1.concat(array2)
console.log(array) // [1, 2, 3, 4, 5, 6]

8.求两个数组的交集

var array1=[2,4,6]
var array2=[1,2,3,4,5]
var repeatValues=array2.filter(item => array1.includes(item))
console.log(repeatValues) //  [2, 4]

9.从数组中删除虚值

虚值有 false0'', nullNaNundefined

var array=[0,1,2,false,'',null,NaN,undefined]
var newArray=array.filter(Boolean)
console.log(newArray) // [1, 2]

10. 从数组中获取随机值

var array=[0,1,2,3,4,5,6]
var index=Math.floor(Math.random() * (array.length))
var value=array[index]
console.log(index) //6

11.反转数组

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

12 lastIndexOf() 方法与indexOf()方法

var array=[1,2,3,4,5,4,3,2,1]
var lastIndexOf=array.lastIndexOf(2)
console.log(lastIndexOf) // 7
var indexOf=array.indexOf(2)
console.log(indexOf) //1

13.对数组中的所有值求和

var array=[1,2,3,4,5,6]
var sum= array.reduce((a,b) => a+b)
console.log(sum) // 21
var array=[1,2,3,4,5,6]
var sum=0
array.forEach(item => sum+=item)
console.log(sum) // 21
let array = [1, 2, 3, 4, 5, 6];
function computeSum(sum, number) {
       return sum + number;
 }
let sum = array.reduce(computeSum, 0);
 console.log(sum)  // 21

14.数组的遍历

for(const item of items)循环遍历数组项

let array=[1,2,3,4,5,6]
for(let item in array){
    console.log(item)
	// 0 1 2 3 4 5
}

for(let i; i < array.length; i++)循环递增索引,遍历数组项

let array=[1,2,3,4,5,6]
for (let index = 0; index < array.length; index++) {
    let value=array[index]
    console.log(value)
    // 0 1 2 3 4 5
}

array.forEach(callback)方法,在每个数组项上调用callback函数来遍历数组项。break无法终止迭代

let array=[1,2,3,4,5,6]
array.forEach(function(item,index){ //item:元素 index:索引
    console.log(item,':',index)
})
1 ":" 0
2 ":" 1
3 ":" 2
4 ":" 3
5 ":" 4
6 ":" 5

15.数组的映射

Array.map()创建一个新的映射数组,不改变原始数组,在每个数组项上使用callback调用结果来创建一个新数组。

let array=[1,2,3,4,5,6]
let newArray=array.map(item => {
    //返回新项。
    return item+1
})
console.log(newArray) // [2, 3, 4, 5, 6, 7]

Array.from()创建一个新的映射数组,而不改变原始数组。适合从类似数组的对象进行映射。

let array=[1,2,3,4,5,6];
let newArray= Array.from(array,function(item){
    return item+1;
  })
console.log(newArray) // [2, 3, 4, 5, 6, 7]

16.数组的拷贝

[...array]方法

let array=[1,2];
let clone =[...array]
console.log(clone) // [1, 2]
array===clone //false

[].concat(array)方法

let array=[1,2];
let clone=[].concat(array)
console.log(clone) // [1, 2]
array===clone //false

array.slice())方法

let array=[1,2];
let clone=array.slice()
console.log(clone) // [1, 2]
array===clone //false

17.数组元素的查找

array.includes() 方法

let array=[1,2,3,4,5,6]
array.includes(3) // true

array.find() 返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined

let arrray=[1,2,3,4,5,6]
function test(number) {
  return number % 2 === 0;
}
let value = arrray.find(test);
console.log(value) // 2

array.indexOf() 从开始0索引开始查找,返回找到元素的索引值,如果找不到该项,则返回-1

let array=[1,2,3,4,5,6]
array.indexOf(2) //1

18.查询数组

array.every() 方法,每个项都通过‘检查’,则返回true

let array=[1,2,3,4,5,6]
array.every((item,index) => item % 2) // false
array.every((item,index) => item>0) // true

array.some() 方法,每个项中只要一项通过‘检查’,则返回true

let array=[1,2,3,4,5,6]
array.some((item,index) => item>0) //true
array.some((item,index) => item % 2) //true

19.数组的过滤

array.filter() 创建一个新数组,而不改变原始数组。 其包含通过所提供函数实现的测试的所有元素

let array=[1,2,3,4,5,6]
let newArray= array.filter(item => item>3)
console.log(newArray) // [4, 5, 6]

20.数组的插入

array.push() 方法,将一个或多个项追加到数组的末尾,并返回新的长度

array.push() 会改变原数组

array.push(item1, item2, ..., itemN) 可以添加多个元素

let array=[1,2,3,4,5,6]
let length= array.push(7)
console.log(length) //7
console.log(array) //[1, 2, 3, 4, 5, 6, 7]

array.unshift() 方法 ,将一个或多个项追加到数组的开头,返回数组的新长度

let array=[1,2,3,4,5,6]
let length= array.unshift(0)
console.log(length) //7
console.log(array) //[0,1, 2, 3, 4, 5, 6]

通过组合展开操作符和数组字面量以不可变的方式在数组中插入项

let array=[1,2,3,4,5,6]
let newArray array=[...array,7,8]
console.log(newArray) // [1, 2, 3, 4, 5, 6, 7, 8]
let array=[1,2,3,4,5,6]
let newArray array=[0,...array]
console.log(newArray) // [0,1, 2, 3, 4, 5, 6]

任何索引处插入元素

let array=[1,2,3,4,5,6]
array.splice(array.length,0,'增加一个')
console.log(newArray) // [1, 2, 3, 4, 5, 6, "增加一个"]
let array=[1,2,3,4,5,6]
let newArray=[...array.splice(0,1),'删除2',...array.splice(1)]
console.log(newArray) // [1, "删除2", 3, 4, 5, 6]

21.删除数组元素

array.pop() 方法, 从数组中删除最后一个元素,然后返回该元素, 会改变原数组。

let array=[1,2,3,4,5,6]
let array=[1,2,3,4,5,6]
let value=array.pop()
console.log(value) //6
console.log(array) // [1, 2, 3, 4, 5]

array.shift() 方法 从数组中删除第一个元素,然后返回该元素。会改变原数组

let array=[1,2,3,4,5,6]
let value=array.shift()
console.log(value) //1
console.log(array) // [2, 3, 4, 5, 6]

array.splice() 方法,从数组中删除元素,删除元素并插入新的元素。会改变原数组。

let array=[1,2,3,4,5,6]
array.splice(1,2)// [2, 3]
console.log(array) // [1, 4, 5, 6]
let array=[1,2,3,4,5,6]
array.splice(1,3,'删除2,3,4,插入234') //[2, 3, 4]
console.log(array) //  [1, "删除2,3,4,插入234", 5, 6]

通过组合展开操作符和数据字面量以不可变的方式从数组中删除项。

let array=[1,2,3,4,5,6]
let newArray=[...array.splice(0,1),...array.splice(4)]
	//array.splice(0,1) [1]  array : [2, 3, 4, 5, 6]
	//array.splice(4) [6] array: [2, 3, 4, 5]
console.log(newArray) //  [1, 6]

22.清空数组

array.length是保存数组长度的属性。 除此之外,array.length是可写的

如果写一个小于当前长度的array.length = newLength,多余的元素从数组中移除

let array=[1,2,3,4,5,6]
array.length=3
console.log(array) // [1, 2, 3]
array.length=0
console.log(array) // []

array.splice() 删除数组中的所有元素

let array=[1,2,3,4,5,6]
array.splice(0)
 console.log(array) //[1,2,3,4,5,6]

23.填充数组

Array(length).fill(initial)来初始化特定长度和初始值的数组。会改变原数组。

let array=[1,2,3,4,5,6]
array.fill(0)
console.log(array) // [0, 0, 0, 0, 0, 0]
var array=new Array(10).fill(0)
console.log(array)// [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Array.from() 有助于初始化带有对象的特定长度的数组:

var array=[{name:"one",value:1},{name:"two",value:2},{name:"three",'value':3}]
Array.from(array,({name}) => name)
console.log(array) // ["one", "two", "three"]
Array.from(array,({value}) => value)
console.log(array) // [1, 2, 3]
let array=Array.from(Array(3),()=> {return {} })
console.log(array) // [{},{},{}]

24. 数组的扁平化

array.flat([depth])方法通过递归扁平属于数组的项直到一定深度来创建新数组。 depth可选参数默认为1array.flat() 创建一个新数组,而不会改变原始数组。

let array = [0, [1, 3], [2, 4]];
let  flatArray = array.flat();
console.log(flatArray) // [0, 1, 3, 2, 4]

25.数组的排序

array.sort() 以升序对数字进行排序。

let array=[4,6,7,9,3,2]
array.sort()
console.log(array) // [2, 3, 4, 6, 7, 9]

compare(a, b)是一个自定义排序顺的回调函数。如果比较compare(a, b)返回的结果:

  • 如果 a小于b,在排序后的数组中a应该出现在b之前,就返回一个小于0的值
  • 如果a等于b,就返回0
  • 如果a大于b,在排序后的数组中a应该出现在b之后,就返回一个大于0的值

让偶数排在奇数前面:

let array=[4,6,7,9,3,2]
function compare(a, b) {
  //返回<0,则a在b之前出现
  if (a % 2 === 0 && b % 2 !== 0) {
    return -1;
  }
  //返回>0,则a在b之后出现
  if (a % 2 !== 0 && b % 2 === 0) {
    return 1;
  }
  return 0;
}
array.sort(compare)
console.log(array) // [4, 6, 2, 7, 9, 3]

让大于等于4的书排在前面

let array=[1,2,3,4,5,6]
function compare(a,b){
     //返回>0,则a在b之后出现
    if(a<4 && b>=4){
    	return 11
    }
    //返回<0,则a在b之前出现
     if(a>=4 && b<4){
    	return -11
    }
    return 0
}
array.sort(compare)
console.log(array) // [4, 5, 6, 1, 2, 3]

到此这篇关于JavaScript数组操作方法实例梳理总结的文章就介绍到这了,更多相关JS数组操作 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Angular.js中数组操作的方法教程

    前言 前端技术的发展是如此之快,各种优秀技术.优秀框架的出现简直让人目不暇接,紧跟时代潮流,学习掌握新知识自然是不敢怠慢.最近在学习Angular.js,将自己学习的一些经验技巧分享给大家,下面本文将给大家介绍关于Angular.js中数组操作的相关资料,话不多说了,来一起看看详细的介绍. 1:ng-click,ng-model,ng-bind,ng-class,ng-hide,ng-app 2:placeholder, 3:{}中加入代码":true|false",使用逗号隔开,可以

  • JavaScript常用数组操作方法,包含ES6方法

    一.concat() concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,仅会返回被连接数组的一个副本. var arr1 = [1,2,3]; var arr2 = [4,5]; var arr3 = arr1.concat(arr2); console.log(arr1); //[1, 2, 3] console.log(arr3); //[1, 2, 3, 4, 5] 二.join() join() 方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分

  • js 数组详细操作方法及解析合集

    前言 在开发中,数组的使用场景非常多,平日中也涉及到很多数组的api/相关操作,一直也没有对这块内容进行一块整理总结,很多时候就算用过几次这个api,在开发中也很容易忘记,还是要谷歌一下.所以就希望对这块内容有一个比较系统性的总结,在这背景下,就有了本篇文章,如果喜欢的话可以点波赞/关注,支持一下,希望大家看完本文可以有所收获. 创建一个数组: // 字面量方式: // 这个方法也是我们最常用的,在初始化数组的时候 相当方便 var a = [3, 11, 8]; // [3,11,8]; //

  • JS简单数组排序操作示例【sort方法】

    本文实例讲述了JS简单数组排序操作.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>www.jb51.net 数组排序</title> </head> <body> <script> window.onload = function()

  • JavaScript操作数组的常用方法总结

    我们在日常开发过程中,使用到原生 JavaScript的时候,有时候会频繁的对数组进行操作,今天我把工作以来,经常用到的有关 JavaScript数组的方法总结一下,方便日后工作的时候查找使用! 一.数组转字符串 需要将数组元素用某个字符连接成字符串. var a=[1,2,3,4,5,6]; var b=a.join(','); console.log(b); 结果: 1,2,3,4,5,6 二.字符串转数组 实现方法为将字符串按某个字符切割成若干个字符串,并以数组形式返回          

  • javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】

    本文实例讲述了javascript数组常见操作方法.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>www.jb51.net 数组的方法</title> <script> var arr=[1,3,4] var arr1=["a",&quo

  • JavaScript中常用的数组操作方法

    目录 一.concat() 二.join() 三.push() 五.shift() 六.unshift() 七.slice() 八.splice() 九.substring() 和 substr() 十.sort 排序 十一.reverse() 十二.indexOf 与 lastIndexOf 十三.every 对数组 十四.some 十五.filter 十六.map 十七.forEach 数组遍历 1.find(): 2.findIndex(): 3.fill(): 4.copyWithin(

  • JavaScript数组及常见操作方法小结

    本文实例讲述了JavaScript数组及常见操作方法.分享给大家供大家参考,具体如下: 数组及操作方法 数组就是一组数据的集合,javascript中,数组里面的数据可以是不同类型的. 定义数组的方法 //对象的实例创建 var aList = new Array(1,2,3); //直接量创建 var aList2 = [1,2,3,'asd']; 操作数组中数据的方法 1.获取数组的长度:aList.length; var aList = [1,2,3,4]; alert(aList.len

  • js array数组对象操作方法汇总

    js 数组对象操作方法如下: 1. 创建数组 var array1 = [1,2] //方法一 var array2 = new Array() //方法二 array[0] = 1; array[1] = 2; 2.遍历数组 for循环 和for...in 循环 var array1 = [1,2]; var l = array1.length; //for循环 for(var i=0;i< l;i++){ console.log(array1 [i]); } //for...in 循环 fo

  • 梳理总结25JavaScript数组操作方法实例

    目录 1.删除数组重复项 2. 获取数组的片段 3.Array.from 达到 .map 的效果 4.置空数组 5. 将数组转换为对象 6. 用数据填充数组 7. 数组合并 8.求两个数组的交集 9.从数组中删除虚值 10. 从数组中获取随机值 11.反转数组 12 lastIndexOf() 方法与indexOf()方法 13.对数组中的所有值求和 14.数组的遍历 15.数组的映射 16.数组的拷贝 17.数组元素的查找 18.查询数组 19.数组的过滤 20.数组的插入 21.删除数组元素

  • ECMAScript 6即将带给我们新的数组操作方法前瞻

    本文介绍ECMAScript 6即将带给我们新的数组操作方法,以及在怎样在现有浏览器应用这些新的数组特性. Note: 我将使用交替使用构造器(constructor)和类(class)两个术语. 类方法 数组(Array)自身所拥有的方法. Array.from(arrayLike, mapFunc?, thisArg?) Array.from()的基本功能是,转换两种类型的对象成数组. 类数组对象(Array-like objects) 该类对象有长度与索引的属性.DOM操作符的结果即属于该

  • python中字符串变二维数组的实例讲解

    有一道算法题题目的意思是在二维数组里找到一个峰值.要求复杂度为n. 解题思路是找田字(四边和中间横竖两行)中最大值,用分治法递归下一个象限的田字. 在用python定义一个二维数组时可以有list和numpy.array两种方式,看了几篇python中二维数组的建立的博客发现大多都是建立的初始化的二维数组,而我需要通过文件读取得到的是字符串,再把字符串转换为二维数组,找不到解决方法还是决定自己来转换. 首先,最开始的字符串输出如下,数字之间有空格 思路就是把先按换行符进行切片,再对每一行的字符再

  • js通过指定下标或指定元素进行删除数组的实例

    实例如下: 删除指定下标数组元素 Array.prototype.del=function(index){ if(isNaN(index)||index>=this.length){ return false; } for(var i=0,n=0;i<this.length;i++){ if(this[i]!=this[index]){ this[n++]=this[i]; } } this.length-=1; }; 删除指定元素 Array.prototype.indexOf = func

  • C语言树状数组的实例详解

    C语言树状数组的实例详解 最近学了树状数组,给我的感觉就是 这个数据结构好神奇啊^_^ 首先她的常数比线段树小,其次她的实现复杂度也远低于线段树 (并没有黑线段树的意思=-=) 所以熟练掌握她是非常有必要的.. 关于树状数组的基础知识与原理网上一搜一大堆,我就不赘述了,就谈一些树状数组的应用好了 1,单点修改,求区间和 #define lowbit(x) (x&-x) // 设 x 的末尾零的个数为 y , 则 lowbit(x) == 2^y void Update(int i,int v)

  • java 遍历Map及Map转化为二维数组的实例

    java 遍历Map及Map转化为二维数组的实例 实例代码: import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class Test { public static void main(String[] args) { int a = 0, b = 0, c = 0; // 第一种:通过Map.keySet()遍历Map及将Map转化为二维数组 Map<String, String>

  • js数组操作方法总结(必看篇)

    判断数值数组中各个数字出现的奇偶次数 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>数组操作</title> </head> <body> <script type="text/javascript"> var arr=[3,1,2,2,1,3,1

  • PHP中常用的数组操作方法笔记整理

    概述 要访问一个变量的内容,可以直接使用其名称.如果该变量是一个数组,可以使用变量名称和关键字或索引的组合来访问其内容. 像其他变量一样,使用运算符=可以改变数组元素的内容.数组单元可以通过 array[key] 语法来访问. 数组的基本操作 php定义数组: <?php $array = array(); $array["key"] = "values"; ?> 在PHP中声明数组的方式主要有两种: 1.用array()函数声明数组, 2.直接为数组元

  • 数据结构之数组Array实例详解

    数据结构之数组Array实例详解 数组Array 基本操作 Status InitArray(int dimm,...)//若维数dim和随后的各维长度合法,则构造相应的数组A,并返回OK Status DestroyArray() //销毁数组A Status Locate(va_list ap,int &off) //若ap指示的各下标值合法,则求出该元素在A中相对地址off Status Value(ElemType &e,...) //A是n维数组,e为元素变量,随后是n个下标值.

  • 使用phpQuery获取数组的实例

    使用phpQuery获取数组 <? include 'phpQuery.php'; phpQuery::newDocumentFile('http://www.jb51.net'); foreach (pq("input[name='jobEmail[]']") as $li){ $po['jobEmail'][] = pq($li)->attr('value'); } 使用phpQuery获取元素的值 $po['langSkills']['typeId'][] = $ob

随机推荐