JS中关于数组的方法(改变/不改变原数组)

阅读: 评论:0

JS中关于数组的方法(改变/不改变原数组)

JS中关于数组的方法(改变/不改变原数组)

改变原数组的方法

  1. pop():删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不 改变数组,并返回 undefined 值。arrayObject.pop()
  2. push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组,返回当前别修改的原数组的长度arrayObject.push(newelement1,newelement2,….,newelementX) 。
  3. reverse()该方法会改变原来的数组----将原来的数组倒序,而不会创建新的数组。verse()。
  4. shift():数组的第一个元素从其中删除,并返回第一个元素的值,如果数组是空的,那么 shift() 方法将不进行任何操作,如果是一个空数组,返回undefined,如果不是,则返回被删除的元素
  5. unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。arrayObject.unshift(newelement1,newelement2,….,newelementX)返回arrayObject 的新长度
  6. sort()
    对数组的引用。请注意,数组在原数组上进行排序,不生成副本。arrayObject.sort(sortby) (如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
    如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
      若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
    若 a 等于 b,则返回 0。
    若 a 大于 b,则返回一个大于 0 的值.
- 如果说不提供任何的参数,则根据默认规则来进行排序(根据unicode来进行排序)- 如果提供参数(函数),我们可以指定排序的规则a 和 b代表两个在比较的值      如果 a-b 的结果​	大于0 :b 排到 a 前面​	小于0:a 排到 b 前面​	等于0:a 和 b 的位置不变
  1. sp在这里插入代码片lice()方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。
- splice(start[,num,item1&#])
- start:删除的起始位置如果start大于length,就是不删除。如果是一个负数(负数的绝对值超过了length,则起始位置被设定为length),从右到左查找对应的起始位置length + (start)
- num:可选,默认删除到数组的末尾。表示删除的个数如果小于0,或者是NaN,则当做0进行处理,不删除任何元素
- item1&# 从删除的位置,添加第二个参数以后的内容
返回值是所有删除的元素,组成的数组,如果没有删除任何元素,将会得到一个空数组
如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组
arrayObject.splice(index,howmany,item1,…..,itemX)
  1. reverse(),将数组中元素颠倒过来。返回一个新的数组,会改变原有的数组。
var arr = ['a','b','c'];console.verse());console.log(arr);

不改变原数组的方法

  1. concat():用于连接两个或多个数组,仅会返回被连接数组的一个副本&#at(arrayX,arrayX,……,arrayX)
  2. join():返回一个字符串。该字符串是通过把 arrayObject 的每个元素转换为字符串,然后把这些字符串连接起来,arrayObject.join(separator)
  3. slice():如果数组是空的arrayObject.slice(start,end) 方法可从已有的数组中返回选定的元素。Slice(1)表示slice(1,末尾)
slice(begin,end)
用于截取数组中的内容,返回一个新数组
- begin- 如果不给,默认为0- 截取的起始位置- 如果值超过了length,就会返回一个空数组给你- 如果是一个负数(负数的绝对值超过了length,就会默认从0开始截取),- 那就说明从倒数第begin开始截取length + begin
- end- 如果不给,默认到数组结尾- 控制截取的结束位置- 如果小于(从位置上来说)bengin,会得到一个空字符串- 如果是负数(如果负数的绝对值超过了length,那么就会得到一个空字符串),- 那么就说明从倒数第end个结束。- 如果超过了length,默认也只到数组的结尾位置begin是包含在内的,end是不包含在截取范围内
  1. toString():arrayObject 的字符串表示。返回值与没有参数的 join() 方法返回的字符串相同String()
  2. indexOf、lastindexOf,不会改变原数组,返回查找原数组的索引
indexOf(searchValue[,fromIndex])
查找目标字符串中,是否包含searchValue,如果包含,返回第一次出现的索引,如果不包含,
返回-1
- searchValue 要查找的值
- fromIndex 查找的起始位置,如果不填,默认为0如果大于或者等于length,则返回-1如果说是一个负数(如果这个负数的绝对值超过length,则fromIndex为0),根据倒数来确认查找的位置
length + fromIndex
lastIndexOf(searchValue[,fromIndex])
返回数组中指定的值最后一次出现的位置,如果不存在,则返回-1fromIndex 搜索的起始位置,默认为length如果大于或者等于length,则为length如果是一个负数,则倒数找到对应的起始位置length - fromIndex如果负数的绝对值大于length,则返回 -1
  1. filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。array.filter(function(currentValue,index,arr), thisValue)
  2. JSON.parse(JSON.stringify()),深度拷贝,也不会改变原数组。

其他数组的方法

  1. arr.forEach(callback[,thisArg])
    对数组中的每一个元素,执行一次提供的函数

- callback(ele)  函数
- ele :循环过程中的每一位元素
- index: 当前循环的元素对应的下标值
- arr :调用forEach的当前数组
- thisArg: 控制当前callback中的this指向该方法返回值是undefined
对数组中的每一个元素执行callback函数,将结果根据callback函数中的条件,返回单个值。
- callback :执行的函数- result 结果- ele :当前正在循环的元素- index :当前正在循环的元素对应的索引值- initValue 可选。对于result进行初始化;
10 20 1
undefined 4 2
undefined 50 3
undefined 60 4
undefined 75 5
undefined 3 6undefined的出现是因为我们没有把结果return给result接受
  1. some(callback[,thisAry])
测试数组中是否至少有一个元素通过了指定函数的测试,结果返回布尔值
- callback 用于测试的函数- ele:数组循环中的元素- index:元素对应下标- array:当前正在操作的数组
- thisAry:决定callback中的this指向
  1. every(callback[,thisAry])
    测试数组中所有元素都通过了指定函数的测试,结果返回布尔值

总是被会不会改变原数组困扰,记录一下,希望也可以帮助到大家

本文发布于:2024-02-02 21:29:57,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170688059746560.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数组   不改变   方法   JS
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23