1、不改变原数组,返回新数组
-
concat()
连接两个或多个数组,两边的原始数组都不会变化,返回被连接数组的一个副本。
-
join()
把数组中所有元素放入一个字符串中,返回字符串。
-
slice()
从开始到结束(不包括结束)选择数组的一部分浅拷贝到一个新数组。
-
map()
创建一个新数组并返回,其中新数组的每个元素由调用原始数组中的每一个元素执行提供的函数得来,原始数组不会改变。
-
every()
对数组中的每个元素都执行一次指定的回调函数,直到回调函数返回
false
,此时every()
返回false
并不再继续执行。如果回调函数对每个元素都返回true
,那么every()
将返回true
。 -
some()
对数组中的每个元素都执行一次指定的回调函数,直到回调函数返回
true
,此时some()
返回true
并不再继续执行。如果回调函数对每个元素都返回false
,那么some()
将返回false
。
-
filter()
创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
2、改变原数组
-
forEach()
针对每一个元素执行提供的函数。会修改原来的数组,不会返回执行结果,返回
undefined
。 -
pop()
删除数组最后一个元素,返回被删除的元素。如果数组为空,则不改变数组,返回
undefined
。 -
push()
向数组末尾添加一个或多个元素,返回改变后数组的长度。
-
reverse()
颠倒数组中元素的位置,返回该数组的引用。
-
shift()
从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。
-
unshift()
将一个或多个元素添加到数组的开头,并返回新数组的长度。
-
sort()
对数组的元素进行排序,并返回数组。排序不一定是稳定的。默认排序顺序是根据字符串Unicode码点。
-
splice()
向数组中添加/删除项目,然后返回被删除项目的新数组。遍历方法
遍历方法
获取属性名:for..in
和 object.keys()
的区别
for..in
语句:遍历对象的可枚举属性名列表,包括[[Prototype]]原型链。- 对于数组,不仅会包含所有数值索引,还会包含所有可枚举属性。遍历数组使用传统for循环
propertyIsEnumerable(..)
:只检查属性名是否在对象中并且enumerable:true
。Object.keys(..)
:只查找属性名是否在对象中,返回一个数组,包含所有可枚举属性名。Object.getOwnPropertyNames(..)
:只查找属性名是否在对象中,返回一个数组,包含所有属性名,无论是否可枚举。
获取属性值:for..of
和object.values()
for..of
语句:遍历可迭代对象的可枚举属性的值列表,包括[[Prototype]]原型链。object.values()
:返回一个给定对象自身的所有可枚举属性的值的数组,不包括原型链
ES6语法之Map键值对转化数组
new Map创建一个map
// new Map创建一个map
let map = new Map([[1,"one"], [2,"two"], [3,"three"]]);
map.set(4, "four");
// 获取所有键值对
console.log("获取key")
console.log([...map.keys()]) // 输出[1, 2, 3, 4]
console.log("获取value")
console.log([...map.values()]) // 输出[one, two, three, four]
console.log("获取map数组")
console.log([...map]) // 输出[[1, "one"], [2, "two"], [3, "three"], [4, "four"]]
数组去重
- reduce方法
const distinct = arr => arr.sort().reduce( (init, current) => {
if (init.length === 0 || init[init.length - 1] !== current) {
init.push( current );
}
return init;
}, []);
let arr = [1,2,1,2,3,5,4,5,3,4,4,4,4];
distinct(arr); // [1, 2, 3, 4, 5]
- filter方法
const distinct = arr => arr.filter( (element, index, self) => {
return self.indexOf( element ) === index;
});
let arr = [1,2,1,2,3,5,4,5,3,4,4,4,4];
distinct(arr); // [1, 2, 3, 5, 4]