当前位置:   article > 正文

js常用数组操作方法_js 数组操作

js 数组操作

1、concat()
用于连接两个或多个数组。该方法不会改变现有的数组,仅会返回被连接数组的一个副本。
在这里插入图片描述

 2、join()
用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的,默认使用’,'号分割,不改变原数组

在这里插入图片描述

3、push()
可向数组的末尾添加一个或多个元素,并返回新的长度。末尾添加,返回的是长度,改变原数组

在这里插入图片描述

 4、pop()
用于删除并返回数组的最后一个元素。返回最后一个元素,改变原数组

在这里插入图片描述

5、shift()
用于把数组的第一个元素从其中删除,并返回第一个元素的值,改变原数组

在这里插入图片描述

6、unshift()
可向数组的开头添加一个或更多元素,并返回新的长度,改变原数组

在这里插入图片描述
7、slice()  截取
返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素(含头不含尾)。返回选定的元素,不会修改原数组

在这里插入图片描述
8、splice()  删除
splice() 方法可删除从 index(从0开始) 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。如果从 arrayObject 中删除了元素,返回的是含有被删除的元素的数组会改变原数组

在这里插入图片描述
9、substr() 和 substring()

相同点:如果只是写一个参数,两者的作用都一样:都是是截取字符串从当前下标直到字符串最后的字符串片段。都不会改变原字符串

 在这里插入图片描述

不同点:第二个参数
substr(startIndex,lenth): 第二个参数是截取字符串的长度(从起始点截取某个长度的字符串);
substring(startIndex, endIndex): 第二个参数是截取字符串最终的下标 (截取2个位置之间的字符串,‘含头不含尾’)。

在这里插入图片描述

10、sort 排序
按照 Unicode code 位置排序,默认升序,会改变原数组

在这里插入图片描述

11、reverse()
用于颠倒数组中元素的顺序。返回的是颠倒后的数组,会改变原数组

在这里插入图片描述

12、indexOf 和 lastIndexOf
都接受两个参数:查找的值、查找起始位置
不存在,返回 -1 ;存在,返回位置。indexOf 是从前往后查找, lastIndexOf 是从后往前查找。
indexOf

在这里插入图片描述

 在这里插入图片描述

13、every
对数组的每一项都运行给定的函数,每一项都返回 ture,则返回 true

在这里插入图片描述

14、some
对数组的每一项都运行给定的函数,任意一项都返回 ture,则返回 true

在这里插入图片描述

15、filter
对数组的每一项都运行给定的函数,返回 结果为 ture 的项组成的数组

在这里插入图片描述

16、map
对数组的每一项都运行给定的函数,返回每次函数调用的结果组成一个新数组

map不会改变原数组,但如果数组是对象数组就会改变

在这里插入图片描述

17、forEach 数组遍历

删除数组中的指定值

  1. //第一种用最常见的ForEach循环来对比元素找到之后将其删除:
  2. var colors = ["red", "blue", "grey"];
  3. colors.forEach(function(item, index, arr) {
  4. if(item == "red") {
  5. arr.splice(index, 1);
  6. }
  7. });
  8. //第二种我们用循环中的filter方法
  9. var colors = ["red", "blue", "grey"];
  10. colors = colors.filter(function(item) {
  11. return item != "red"
  12. });
  13. console.log(colors); //["blue", "grey"]

删除数组中的某一项

  1. JavaScript中如何删除数组某个元素,我们有需要了解splice这个方法,翻译为剪接,
  2. arr.splice(0,1)表示删除数组的第一个
  3. arr.splice(1,2)表示删除从第二个开始,长度为2个的元素。
  4. Array.prototype 也是个数组,所以它也有 length 属性
  5. //1、首先可以给js的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引
  6. Array.prototype.indexOf = function(val) {
  7. for (var i = 0; i < this.length; i++) {
  8. if (this[i] == val) return i;
  9. }
  10. return -1;
  11. };
  12. //2、然后使用通过得到这个元素的索引,使用js数组自己固有的函数去删除这个元素:
  13. Array.prototype.remove = function(val) {
  14. var index = this.indexOf(val);
  15. if (index > -1) {
  16. this.splice(index, 1);
  17. }
  18. };
  19. 这样就构造了这样一个函数,比如我有一个数组:
  20. var emp = ['abs','dsf','sdf','fd']
  21. //假如我们要删除其中的 ‘fd’ ,就可以使用:
  22. emp.remove('fd');
使用 reduce 方法实现 forEach、map、filter
  1. // forEach
  2. function forEachUseReduce(array, handler) {
  3. array.reduce(function (pre, item, index) {
  4. handler(item, index);
  5. }, null);
  6. }
  7. // map
  8. function mapUseReduce(array, handler) {
  9. let result = [];
  10. array.reduce(function (pre, item, index) {
  11. let mapItem = handler(item, index);
  12. result.push(mapItem);
  13. }, null);
  14. return result;
  15. }
  16. // filter
  17. function filterUseReduce(array, handler) {
  18. let result = [];
  19. array.reduce(function (pre, item, index) {
  20. if (handler(item, index)) {
  21. result.push(item);
  22. }
  23. }, null);
  24. return result;
  25. }
  1. //reduce的用法
  2. arr.reduce(function(prev,cur,index,arr){
  3. ...
  4. }, init);
  5. prev 必需。累计器累计回调的返回值; 表示上一次调用回调时的返回值,或者初始值 init;
  6. cur 必需。表示当前正在处理的数组元素;
  7. index 可选。表示当前正在处理的数组元素的索引,若提供 init 值,则起始索引为- 0,否则起始索引为1
  8. arr 可选。表示原数组;
  9. init 可选。表示初始值。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/476988
推荐阅读
相关标签
  

闽ICP备14008679号