js常用的数组方法

2019-08-14 10:08:00来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

1.filter() 不会改变原始数组,新数组中的元素是过滤指定数组中符合条件的所有元素

两种写法区别:有return 的加了{},否则没有return不需要加{}

var aa = [1, 2, 3, 4, 4, 5, 6, 6];
var bb = aa.filter((item, index, self) => {
  return self.indexOf(item) === index     // indexOf找到数组中第一个符合条件的元素位置,没找到指定元素则返回 -1
})
console.log(bb);  //  [1, 2, 3, 4, 5, 6]
 
var aa = [1, 2, 3, 4, 4, 5, 6, 6];
var bb = aa.filter((item, index, self) =>
  self.indexOf(item) === index
)
console.log(bb); //  [1, 2, 3, 4, 5, 6]
 
ES6数组去重写法:
var arr = [1, 2, 3, 4, 4, 5, 6, 6];
var set = new Set(arr);
var newArr = Array.from(set);
console.log(newArr); // [1, 2, 3, 4, 5,6]
 
2.map() 不会改变原始数组,新数组中的元素为按原始数组顺序依次处理元素后的值,同样有两种写法
var aa = [1, 2, 3, 4, 4, 5, 6, 6];
var bb = aa.map((item) => {
  return item = item * item
})
console.log(bb); //  [1, 4, 9, 16, 16, 25, 36, 36]
 
3.every() 不会改变原始数组,检测数组所有元素是否都符合指定条件,全部通过返回true,否则返回false(所有项满足返回true)
  • 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测
  • 如果所有元素都满足条件,则返回 true
var aa = [1, 2, 3, 4, 4, 5, 6, 6];
var bb = aa.every((item) => {
  return item != 3
})
console.log(bb); //  false
 
4.some() 不会改变原始数组,检测数组中的元素是否满足指定条件,只要有一个通过返回true,否则返回false(只要一项满足返回true)
  • 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测
  • 如果没有满足条件的元素,则返回false
var aa = [1, 2, 3, 4, 4, 5, 6, 6];
var bb = aa.some((item) => {
  return item != 3
})
console.log(bb); // true
 

5.findIndex() 不改变原始数组,找到符合条件的数组第一个元素位置

  • 当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数
  • 如果没有符合条件的元素返回 -1
var aa = [1, 2, 4, 4, 5];
var bb = aa.findIndex(item => {
  return item > 3
});
console.log(bb); // 2
 
6.find()不改变原始数组,找到符合条件的数组的第一个元素的值
  • 当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数
  • 如果没有符合条件的元素返回 undefined
var aa = [1, 2, 4, 4, 5];
var bb = aa.find(item => {
  return item > 3
});
console.log(bb); // 4
 
7. slice() 不会改变原始数组,从已有的数组中返回选定的元素,截取组成新字符串(数组截取)
var aa = [1, 2, 3, 4, 4, 5, 6, 6];
var bb = aa.slice(2,4)
console.log(bb); // [3, 4]
 
8.splice() 改变原始数组,用于添加或删除数组中的元素(数组更新)
第一个元素是从何处添加/删除元素,第二个元素是删除多少元素,第三个元素(不必填)是要添加到数组的新元素
var aa = [1, 2, 3, 4, 4, 5, 6, 6];
aa.splice(3,4,2)   // 从第3位开始删除4个元素,并把2添加进删除的位置
console.log(aa); //[1, 2, 3, 2, 6]
 
9.join()不改变原数组,数组转字符串
var aa = [1, 2, 3, 4, 4, 5, 6, 6];
var bb = aa.join()
console.log(bb); // 1,2,3,4,4,5,6,6
 
10. split()不改变原字符串,字符串变数组
var aa = '1,2,3,4,4,5,6,6';
var bb = aa.split(',')
console.log(bb); // ["1", "2", "3", "4", "4", "5", "6", "6"]
 
11. 遍历数组方法 keys()、values()、entries()
keys()是对键名的遍历
let aa = ["a", "b", "c", "d"];
for (let index of aa.keys()) {
  console.log(index);
}
values()对键值的遍历
let bb = ["a", "b", "c", "d"];
for (let item of bb.values()) {
  console.log(item);
}
entries()是对键值对的遍历
let arr = ["a", "b", "c", "d"];
for (let i of arr.entries()) {
  console.log(i);
}
for (let [index, item] of arr.entries()) {
  console.log(index + ":" + item);
}
 

原文链接:https://www.cnblogs.com/yaohl/p/11151198.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:web交互方式---ajax

下一篇:ES6 之 对象的简写方式