视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
JS中常用到数组操作
2020-11-27 19:47:14 责编:小采
文档


  1. push:向数组末尾添加元素,并返回新的长度

  2. pop:删除最后一个并返回删除的元素

  3. unshift:向数组开头添加元素,并返回新的长度

  4. shift:将第一个元素删除并且返回删除元素,空即为undefined

  5. reverse:颠倒数组顺序

  6. sort:对数组排序

  7. splice:删,增,替换数组元素,返回被删除数组,无删除则不返回

不会改变原始数组的操作方法:
  1. concat:连接多个数组,返回新的数组

  2. join:将数组中所有元素以参数作为分隔符放入一个字符

  3. slice:返回选定元素

  4. map(es6):数组映射为新的数组

  5. filter(es6):数组过滤,返回所有通过方法判断后(判断为true时)生成的新数组

  6. forEach:数组遍历,没有返回值

  7. every(es6):对数组中的每一项运行给定函数,如每一项均为true时返回true,否则返回false

  8. some(es6):数组中的的元素运行给定函数,如其中有一项为true时返回true,此时剩余的元素不会再执行检测,如果所以都为false则返回false

  9. find(es6):寻找数组中符合测试方法(函数)条件的第一个元素,并且返回该元素

  10. reduce(es6):方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

  11. indexOf: 方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。

  12. includes(es7):方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回true,否则返回false。


使用

// 连接数组
//concat方法
var array1 = ['a', 'b', 'c'];
var array2 = ['d', 'e', 'f'];
array1.concat(array2); // ["a", "b", "c", "d", "e", "f"]
// 展开运算符方法
[...array1, ...array2] // ["a", "b", "c", "d", "e", "f"]



//循环
var arr = ['a', 'b', 'c'];
arr.forEach(function(element, index) {
 console.log(element + ',' + index);
});
// a , 0
// b , 1
// c , 2

// 箭头函数写法
arr.forEach((element,index) => console.log(element,index));



//循环映射(map)
var numbers = [1, 5, 10, 15];
let doubles = numbers.map((item, index) => item * 2);
// [2, 10, 20, 30]

// 数组是否元素包含(includes)
let a = [1, 2, 3];
a.includes(2);
// true
a.includes(4);
// false



//查找元素(find)
//查找数组中大于等于15的元素,并且返回第一个元素
var ret = [12, 5, 8, 130, 44].find(function(element) {
 return element >= 15; // 方法需要有返回值,判断得出true或者false,返回为true的元素
 }
);
// 130



// 过滤数组(filter)
// 过滤数组中大于等于10的元素并且返回新数组
var filtered = [12, 5, 8, 130, 44].filter(function(value) {
 return value >= 10; // 方法需要有返回值,判断得出true或者false,返回为true的元素
 }
);
// [12, 130, 44]



// 循环判断(every) 为每个元素都执行
var passed = [12, 5, 8, 130, 44].every(function (element, index, array) {
 return (element >= 10);
});
// false


// 循环判断(some) 遇到返回值为true的就停止执行
var passed = [12, 5, 8, 130, 44].some(function (element, index, array) {
 return (element >= 10);
});
// true



// 数组截取(slice) 不改变原数组
var animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
animals.slice(2) // ["camel", "duck", "elephant"] 返回数组从下标2开始直到结尾的一个新数组
animals.slice(2, 4) //["camel", "duck"] 返回数组从下标2到4之间到一个新数组



// 数组减接(splice) 改变原数组
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
myFish.splice(2, 0, 'drum'); // ["angel", "clown", "drum", "mandarin", "sturgeon"] 0为删减个数,在索引为2的位置不删减并且插入'drum'
myFish.splice(2, 1); // ["angel", "clown", "mandarin", "sturgeon"] 从索引为2的位置删除1项(也就是'drum'这一项)



// 使用 lastIndexOf
var array = [2, 5, 9, 2];
var index = array.lastIndexOf(2); // index === 3
var index = array.lastIndexOf(8); // index === -1



// 数组转字符串(join)
let a = ['Wind', 'Rain', 'Fire'];
a.join() //默认为逗号分隔
// 'Wind,Rain,Fire'
a.join("-") // 用 - 分隔
// 'Wind-Rain-Fire'



// es6 数组去重
let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3];
let set = new Set(array);
let newarr = Array.from(set);
// newarr === [1, 2, 3, 4, 5]

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

前端中怎样设置cookie

前端中如何阻止事件传播

下载本文
显示全文
专题