首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js 数组 方法

JavaScript 中的数组提供了多种方法来操作和处理数组数据。以下是一些常用的数组方法及其基础概念、优势、类型、应用场景:

1. push()

基础概念:向数组的末尾添加一个或多个元素,并返回新的长度。 优势:简单易用,直接修改原数组。 应用场景:当你需要在数组末尾添加元素时。

代码语言:txt
复制
let arr = [1, 2, 3];
arr.push(4); // arr 现在是 [1, 2, 3, 4]

2. pop()

基础概念:删除并返回数组的最后一个元素。 优势:简单易用,直接修改原数组。 应用场景:当你需要移除并获取数组最后一个元素时。

代码语言:txt
复制
let arr = [1, 2, 3];
let lastElement = arr.pop(); // lastElement 是 3,arr 现在是 [1, 2]

3. shift()

基础概念:删除并返回数组的第一个元素。 优势:简单易用,直接修改原数组。 应用场景:当你需要移除并获取数组第一个元素时。

代码语言:txt
复制
let arr = [1, 2, 3];
let firstElement = arr.shift(); // firstElement 是 1,arr 现在是 [2, 3]

4. unshift()

基础概念:向数组的开头添加一个或多个元素,并返回新的长度。 优势:简单易用,直接修改原数组。 应用场景:当你需要在数组开头添加元素时。

代码语言:txt
复制
let arr = [1, 2, 3];
arr.unshift(0); // arr 现在是 [0, 1, 2, 3]

5. splice()

基础概念:添加或删除数组中的元素,可以指定起始位置和删除的元素数量。 优势:功能强大,可以灵活地添加或删除元素。 应用场景:当你需要在数组中间添加或删除元素时。

代码语言:txt
复制
let arr = [1, 2, 3, 4];
arr.splice(2, 1, 'a'); // arr 现在是 [1, 2, 'a', 4]

6. slice()

基础概念:返回数组的一个片段,不会修改原数组。 优势:不会改变原数组,适合需要保留原数组的情况。 应用场景:当你需要获取数组的一部分而不改变原数组时。

代码语言:txt
复制
let arr = [1, 2, 3, 4];
let subArr = arr.slice(1, 3); // subArr 是 [2, 3]

7. map()

基础概念:创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后的返回值。 优势:简洁,适合处理数组中的每个元素。 应用场景:当你需要对数组中的每个元素进行相同的操作并生成新数组时。

代码语言:txt
复制
let arr = [1, 2, 3];
let doubled = arr.map(x => x * 2); // doubled 是 [2, 4, 6]

8. filter()

基础概念:创建一个新数组,其包含通过所提供函数实现的测试的所有元素。 优势:简洁,适合过滤数组中的元素。 应用场景:当你需要根据某些条件过滤数组中的元素时。

代码语言:txt
复制
let arr = [1, 2, 3, 4];
let even = arr.filter(x => x % 2 === 0); // even 是 [2, 4]

9. reduce()

基础概念:对数组中的每个元素执行一个提供的 reducer 函数(升序执行),将其结果汇总为单个返回值。 优势:功能强大,适合复杂的数组操作。 应用场景:当你需要对数组进行累积操作时。

代码语言:txt
复制
let arr = [1, 2, 3, 4];
let sum = arr.reduce((acc, x) => acc + x, 0); // sum 是 10

常见问题及解决方法

问题:splice() 方法修改了原数组,如何避免?

解决方法:使用 slice() 方法来获取数组的片段,而不是直接修改原数组。

代码语言:txt
复制
let arr = [1, 2, 3, 4];
let newArr = arr.slice(0, 2).concat(['a'], arr.slice(2)); // newArr 是 [1, 2, 'a', 3, 4]

问题:map() 方法返回的新数组元素顺序与原数组不一致?

解决方法:确保 map() 回调函数中的操作不会改变元素的顺序。

代码语言:txt
复制
let arr = [1, 2, 3];
let doubled = arr.map(x => x * 2); // doubled 是 [2, 4, 6],顺序一致

通过理解和熟练使用这些数组方法,可以大大提高 JavaScript 编程的效率和代码的可读性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • JS 数组克隆方法总结

    ES5 方法总结 slice /1.slice方法 1) 作用:从一个数组中截取出新的数组 2) 格式:数组名.slice(begin,end);  begin表示开的下标  end表示结束的下标...,但是在截取时不包含结束下标对应的元素 3) 注意:  原数组不受影响  如果只设置一个参数,即begin,那么会从begin截取到最后  如果不写参数,那么slice方法可以实现数组的复制...let arr2 = arr.clone() console.log(arr2) console.log( arr2 === arr ) concat() 使用 concat() 用于连接两个或多个数组...该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本 Array.prototype.clone=function(){ return [].concat(this); //或者...this.concat(); } let arr = ['aaa','asss'] let arr1 = arr.clone() arr[0] = 123 console.log(arr,arr1) ES6 方法总结

    1.8K10

    js数组常用方法总结

    输入:待拼接的元素;如果参数中有数组,则连接的是数组元素,而非数组本身;但是不支持递归,不修改调用的数组。 ...输出:拼接后的新数组  注意:新建的数组,原数组不改变。 ...输入:和forEach一样  输出:执行完函数的新数组  注意:返回新数组,不修改原数组  1 // map() 调用的数组的每一个元素传递给指定的函数,并返回一个新数组 ,不修改原数组 2...:类似数组的对象和可遍历的对象  输入:待转换的对象,第二个参数可选,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组。 ...()) { 14 console.log(index, elem); 15 } 16 // =>0 "a" 17 // =>1 "b" 如果不使用for…of循环,可以手动调用遍历器对象的next方法

    5K30

    JS常用方法-数组篇

    01 - 添加数组元素方法 push()方法: 在数组结尾处向数组添加一个新的元素(其余元素索引未改变),参数为被添加元素 let fruits = ['苹果','香蕉','橘子'] fruits.push...// x的值为4 02 - 删除数组元素方法 pop()方法: 删除数组中最后一个元素(其余元素索引未改变) let fruits = ['苹果','香蕉','橘子'] fruits.pop...// 让数组顺序翻转 console.log(x); // ["Mango","Apple","Orange","Banana"] 不改变原数组的方法 01 - 数组合并和裁剪 concat...()方法: 合并两个数组或是一个数组和多个元素,类似于向数组添加元素参数可以为一个数组或是元素,返回值为合并后的新数组 let fruits = ["Banana", "Orange", "Mango..."Pear", "Lemon"] 02 - 数组迭代方法 对每个数组项进行操作 forEach(): 遍历数组的每个元素参数:第一个为每个元素,第二个为该元素索引号,第三个为数组本身常用的为前两个参数接受回调函数对数组进行操作

    2.1K10

    js数组常用方法详解

    接着之前数组常用方法详解(一)第二部分介绍数组剩下的一些常用方法 2.12 *** concat() concat()方法可以在现有数组全部元素基础上创建一个新数组,它首先会创建一个当前数组的副本,然后再把它的参数添加到副本末尾...indexOf()方法从数组前头(第一项)开始向后搜索,而lastIndexOf()从数组末尾(最后一项)开始向前搜索;indexOf()和 lastIndexOf()都返回要查找的元素在数组中的位置,...其中元素是数组中当前搜索的元素,索引是当前元素的索引,而数组就是正在搜索的数组这两个方法都从数组的最小索引开始。...some(): 对数组每一项都运行传入的函数,如果有一项函数返回 true,则这个方法返回 true。...以上就是数组的一些常用方法和属性,对一些我认为比较重要且常用的方法我都会在标题处加上 *** ,希望可以帮助到各位,谢谢!

    1.5K30

    js--数组方法

    01、concat()---合并数组的方法 02、join(separator)--把数组的所有元素放入一个字符串。元素通过指定的分隔符separator进行分隔。...03、shift()---删除数组第一个元素 04、pop()---删除数组最后一个元素 05、unshift()---在数组开头追加元素 06、push()---在数组末尾追加元素 07、reverse...()---翻转数组元素 08、sort()---数组排序 09、splice(start,deleteCount,val1,val2,...)...---新元素替换原来的元素,从start位置开始删除deleteCount项,并从该位置起插入val1,val2,... 10、slice(start,end)---从一个已有的数组中返回选定的元素,...返回从原数组中指定开始下标到结束下标之间的项组成的新数组 11、toString()----把数组转化成字符串 12、indexof()---返回某个指定的字符串值在数组中首次出现的位置。

    1.6K10

    JS数组常用的方法

    JS 数组常用的方法(个人感觉) 1. forEach() 循环,无法在中间停止 2. some() 循环,找到符合条件的之后,可以通过 return true 退出循环 3. every() 测试数组中的所有元素是否都能通过某个指定函数的测试...amount, item) => (amount += item.price * item.count), 0); console.log(amount); //返回70 6. map() map()方法把调用它的数组的每一个元素分别传给指定的函数...2, , 3]; // 如果数组是稀疏的,缺失元素不会调用函数,但是返回的数组也会和原始数组一样稀疏 let newA = a.map((v) => v * v); console.log(newA)...; console.log(a.split(",")); 16. sort() sort()方法对数组元素按字母顺序对数组元素排序 let arr = [1, 2, 11, 23, 22, 111,...所以,要实现升序排序,可以按下面的方法 let arr = [1, 2, 11, 23, 22, 111, 12, 9, 8]; console.log( arr.sort((a, b) => {

    4.2K20

    JS数组常用方法大全

    数组的方法有数组原型方法,也有从object对象继承来的方法, 常用方法: join 数组转字符串 split 字符串转数组 push 将数据添加到数组尾部 pop 数组末尾移除最后一项 shift 删除原数组第一项...) split() 方法用于把一个字符串分割成字符串数组。...unshift:将参数添加到原数组开头,并返回数组的长度 。 这组方法和上面的push()和pop()方法正好对应,一个是操作数组的开头,一个是操作数组的结尾。...在排序时,sort()方法会调用每个数组项的 toString()转型方法,然后比较得到的字符串,以确定如何排序。...这个方法会先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。在没有给 concat()方法传递参数的情况下,它只是复制当前数组并返回副本。

    3K30

    Js 循环,数组,函数(方法)

    1、Switch语句 语法结构 switch(变量) ​ { ​   case 情况1:     //符合情况1,执行下面代码 ​       Js代码; ​   break;        ...Js中的数组是将任意数据类型,放在一起按照一定顺序排练的集合 (1)、数组的两种定义方式 Var ary=new Array() 创建对象的方式 Var ary1=[]; (2)、...; i++) { alert(ary[i]); //通过下标获取 } 9、数组合并 concat方法 // var ary3 = [12, 324, 4, "re"]; // var ary1 =...[234, 87, "hd"]; // var ary2 = ary3.concat(ary1); //数组合并 合二为一 // alert(ary2); // join方法 返回的是字符串类型...var ary = [123, 56, 343]; var ary2 = ary.join("ad") //在数组中间加入字符 alert(ary2); 10、函数(方法)定义 通过 function

    6K20

    js常用的数组方法

    ,元素n];                  1.5 多维数组 var a=new Array([数组序列1],[数组序列2],[数组序列N]);  2.使用字面量表示方法: 由一对包含数组项的方扩号...length 设置或返回数组中元素的数目。 prototype 使您有能力向对象添加属性和方法。...4.数组对象的方法 4.1添加属性:   1.push():将数组添加到原数组末尾,并返回数组的长度。  ...2.sort():用于对数组中的元素进行排序。     2.1:即使数组中的每一项都是数组,sort方法比较的也是字符串。     2.2:sort()方法可以接受一个比较函数作为参数。...5.ECMAScript 5方法:   5.1位置方法:  indexOf():从数组的开头(位置)开始查找;     lastindeOf():从数组的结束位置开始查找; 5.2:迭代方法:

    1.9K20

    js数组的splice方法_js数组删除某一项

    整数,规定从何处添加/删除元素,是开始插入/删除的数组元素的下标 howmany 必需。整数,规定删除多少个元素。如果设置为 0,则不会删除元素 item1, …, itemX 可选。...向数组添加的新元素 例: //指定位置删除指定个数元素(多个) var arr = ['a','b','c','d']; var res = arr.splice(2,1); console.log(...res); //返回被删除的元素:["c"] console.log(arr); //修改后的数组:["a", "b", "d"] //指定位置删除指定个数(0个) var arr = ['a','b...','c','d']; var res = arr.splice(2,0); console.log(res); //返回被删除的元素:[] console.log(arr); //修改后的数组:["a...:["a", "b", "插入", "d"] 2、delete:用于删除对象的某个属性,或删除数组的某一项 (详细说明:https://developer.mozilla.org/zh-CN/docs/

    3.1K20

    JS中的数组方法

    JS中的数组方法总结 Array.push() 向数组的末尾添加一个或者多个元素,并返回新的长度 let arr =[1,2,3]; console.log(arr.push(6)) //打印结果为...(arr) //打印结果 [1,2,3,4] Array.concat(arr1,arr2) 连接2个或者更多的数组,并返回连接后的新数组,该方法不会改变原数组 let arr1 = [1,2,3...UniCode码排序,也可以传参指定排序方法,arr.sort(fn(second,fitst)),该方法会改变原数组 let arr = [2,1,3] console.log(arr.sort((...arr = [1,2,3] console.log(arr.valueOf()) //[1,2,3] Array.entries()、Array.keys()、Array.values() 这三个方法都用于遍历数组...map方法,然后对返回结果再执行flat方法返回新数组,不改变原数组 [1,2,3].flatMap((item)=>{ return [item,item*item] }) //[1,1,2,4,3,9

    6.2K21

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券