JS数组方法(包含ES6新增方法)

concat(array, ..., arrayN):连接两个或多个数组,并返回新的数组。

var hege = ["Cecilie", "Lone"];
var stale = ["Emil", "Tobias", "Linus"];
var kai = ["Robin"];
var children = hege.concat(stale,kai);
// Cecilie,Lone,Emil,Tobias,Linus,Robin

 

slice(start(负数是倒数), end(负数是倒数)):选取数组的一部分,并返回。

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1,3); // Orange,Lemon

 

splice(start, 删除多少个元素, 要添加的元素):添加、删除或替换数组元素,返回删除元素组成的数组,没有删除则返回空数组。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,0,"Lemon","Kiwi"); // Banana,Orange,Lemon,Kiwi,Apple,Mango

 


 

copyWithin(替换位置, 起始位置, 停止位置(负值表示倒数)):从数组的指定位置复制元素到数组的另一个位置。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.copyWithin(2, 0);
// Banana,Orange,Banana,Orange
var fruits = ["Banana", "Orange", "Apple", "Mango", "Kiwi", "Papaya"];
fruits.copyWithin(2, 0, 2);
// Banana,Orange,Banana,Orange,Kiwi,Papaya

 


 

entries():返回一个包含数组键值对的迭代对象。

for (let [index, elem] of ['a', 'b'].entries()) { console.log(index, elem); } // 0 "a" // 1 "b"

 

keys():返回一个包含数组键名的迭代对象。

for (let index of ['a', 'b'].keys()) {
  console.log(index);
}
// 0
// 1

 

values():返回一个包含数组键值得迭代对象。

for (let elem of ['a', 'b'].values()) {
  console.log(elem);
}
// 'a'
// 'b'

 


 

every(function(currentValue, index, arr), thisValue):对数组中的每一项运行给定函数,如果函数对每一项都返回true,则返回true。

var ages = [32, 33, 16, 40];
ages.every(function checkAdult(age) {
    return age >= 18;
}); // false

 

filter(function(currentValue,index,arr), thisValue):对数组中的每一项运行给定函数,返回函数会返回true的项组成的数组。

var ages = [32, 33, 16, 40];
ages.filter(function checkAdult(age) {
    return age >= 18;
}); // 32,33,40

 

forEach(function(currentValue, index, arr), thisValue):对数组中的每一项运行给定函数,没有返回。

var numbers = [4, 9, 16, 25];
numbers.forEach(function myFunction(item, index) {
    console.log(item, index);
})

 

map(function(currentValue,index,arr), thisValue):对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。

var numbers = [1, 2, 3, 4, 5];
var mapResult = numbers.map(function(item, index, array) {
    return item * 2;
}); // [2,4,6,8,10]

 

some(function(currentValue,index,arr), thisValue):对数组中的每一项运行给定函数,如果函数对有一项返回true,则返回true。

var someResult = numbers.some(function(item, index, array) {
    return (item > 2);
});
alert(someResult); // true

 

find(function(currentValue, index, arr), thisValue):对数组中的每一项运行给定函数,返回符合条件的第一个数组元素,没有则返回undefined。

var ages = [3, 10, 18, 20];
ages.find(function checkAdult(age) {
    return age >= 18;
}); // 18

 

findIndex(function(currentValue, index, arr), thisValue):对数组中的每一项运行给定函数,返回符合条件的第一个数组元素的位置,没有则返回-1。

var ages = [3, 10, 18, 20];
ages.findIndex(function checkAdult(age) {
    return age >= 18;
}); // 2

 


 

fill(填充元素, 开始位置, 停止位置):使用一个固定值来填充数组。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.fill("Runoob");
// Runoob,Runoob,Runoob,Runoob
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.fill("Runoob", 2, 4);
// Banana,Orange,Runoob,Runoob

 


 

from(要转换为数组的对象, mapFunction, thisValue):将类数组对象转换为数组,否则返回空数组。

let arrayLike = {
    '0': 'a',
    '1': 'b',
    '2': 'c',
    length: 3
};

// ES5的写法
var arr1 = [].slice.call(arrayLike); // ['a', 'b', 'c']

// ES6的写法
let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']

 


 

includes(指定值, 起始位置(负数表示倒数)):判断一个数组是否包含一个指定的值。

[1, 2, 3].includes(2)     // true
[1, 2, 3].includes(4)     // false
[1, 2, NaN].includes(NaN) // true
[1, 2, 3].includes(3, 3);  // false
[1, 2, 3].includes(3, -1); // true

 

indexOf(item):返回数组中指定元素的位置,没有则返回-1。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple"); // 2
var fruits=["Banana","Orange","Apple","Mango","Banana","Orange","Apple"];
var a = fruits.indexOf("Apple",4); // 6

 

lastIndex(item):返回一个指定元素在数组中最后出现的位置,没有则没有-1。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.lastIndexOf("Apple"); // 2

 


 

isArray():判断一个对象是否为数组

var fruits = ["Banana", "Orange", "Apple", "Mango"];
Array.isArray(fruits); // true

 


 

join(str):将数组按照分隔符分隔转换为字符串。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join(); // Banana,Orange,Apple,Mango

 

toString():把数组转换为字符串并返回。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.toString(); // Banana,Orange,Apple,Mango

 


 

pop():删除并返回数组的最后一个元素。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.pop(); // Mango

 

push():向数组的末尾添加一个或更多元素,并返回新数组的长度。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log(fruits.push("Kiwi")); // 5

 

shift():删除并返回数组的第一个元素。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.shift() // Banana

 

unshift():向数组的开头添加一个或更多元素,并返回新数组的长度。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon","Pineapple"); // Lemon,Pineapple,Banana,Orange,Apple,Mango

 

 


 

reduce(function(total, currentValue, currentIndex, arr), initialValue):将数组元素从左到右计算为一个值。

const arr = [1, 2, 3];
const reduceArray = arr.reduce(function(acc, current) {
    acc.push(current * 2);
    return acc;
}, [])
console.log(reduceArray) // [2, 4, 6];

 

reduceRight(function(total, currentValue, currentIndex, arr), initialValue):将数组元素从右到左计算为一个值。

const arr = [1, 2, 3];
const reduceArray = arr.reduceRight(function(acc, current) {
    acc.push(current * 2);
    return acc;
}, [])
console.log(reduceArray) // [6, 4, 2];

 


 

reverse():反转数组中元素的顺序。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.reverse(); // Mango,Apple,Orange,Banana

 

sort(排序函数):对数组元素进行排序。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort(); // Apple,Banana,Mango,Orange
var values = [0, 1, 5, 10, 15];
values.sort(function compare(value1, value2) {
    if (value1 < value2) {
        return -1;
    } else if (value1 > value2) {
        return 1;
    } else {
        return 0;
    }
});
alert(values); // 0, 1, 5, 10, 15

 


 

valueOf():返回数组对象的原始值。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var v=fruits.valueOf(); // Banana,Orange,Apple,Mango

 


 

concat

slice

splice

copyWithin

entries

keys

values

every

filter

forEach

map

some

find

findIndex

fill

from

includes

indexOf

lastIndex

isArray

join

toString

pop

push

shift

unshift

reduce

reduceRight

reverse

sort

valueOf

 

转载于:https://www.cnblogs.com/linxian95/p/10444164.html

你可能感兴趣的:(JS数组方法(包含ES6新增方法))