数组API
// 值集数组
let arr1 = [1,2]
let arr2 = [2,3]
let newArr1 = arr1.filter(val=>{
return new Set(arr2).has(val)
})
console.log(newArr1) // [2]
array.foreach((element => {
console.log(element);
})
array.push()
当调用该方法时,新的 length 属性值将被返回。
push 方法具有通用性。该方法和 call() 或 apply() 一起使用时,可应用在类似数组的对象上。push 方法根据 length 属性来决定从哪里开始插入给定的值。如果 length 不能被转成一个数值,则插入的元素索引为 0,包括 length 不存在时。当 length 不存在时,将会创建它。
array.pop()
pop()方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。
可应用在类似数组的对象上。pop方法根据 length属性来确定最后一个元素的位置。如果不包含length属性或length属性不能被转成一个数值,会将length置为0,并返回undefined。
array.shift()
array.unshift()
arrray.indexOf(item)
array.concat(array2)
array.includes(item) return boolean
array.join([string])
return string
Array.prototype.toString()
返回一个由所有数组元素组合而成的字符串。遮蔽了原型链上的 Object.prototype.toString() 方法。
array.indexOf(item) 如果找不到 返回-1 找到返回index
array.lastIndexOf(item) 从后往前找,找不到返回-1 找到返回index lastIndexOf 使用严格相等(strict equality,即 ===)
array.splice(index,n)
array.slice()
array.entries() 返回键值对
array.every( item=>{item?...}) 如果数组的item都符号检测条件, 返回true or false
array.some() 有一个item满足就行, 返回true
array.filter() 返回符合过滤条件的item组成的数组
array.find() 找到并返回第一个满足条件的item , 如果不存在返回undefined
array.findIndex()
array.keys() 返回所有的键
array.map() 返回由回调函数的return 组成的数组
array.reduce() 递归执行, 把上一次callback函数的return 作为参数传递至下一callback函数 直至最后一次
array.reduceRight() 反序执行
array.values() 返回所有的值
如果指定的索引是一个无效值,JavaScript 数组并不会报错,而是会返回 undefined。
在 JavaScript 中,以数字开头的属性不能用点号引用,必须用方括号。
Object.keys(array) 返回数组中item的index
为 length 赋一个更小的值则会删掉一部分元素:
myRe = /d(b+)(d)/i;
myArray = myRe.exec("cdbBdbsbz");
Array.isArray()
Array.from() 方法从一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例。
语法
Array.from(arrayLike[, mapFn[, thisArg]])
示例
console.log(Array.from('foo'));
// expected output: Array ["f", "o", "o"]
console.log(Array.from([1, 2, 3], x => x + x));
// expected output: Array [2, 4, 6]
从 String 生成数组
从 Set 生成数组
const map = new Map([[1, 2], [2, 4], [4, 8]]);
Array.from(map);
// [[1, 2], [2, 4], [4, 8]]
从类数组对象(arguments)生成数组
function f() {
return Array.from(arguments);
}
f(1, 2, 3);
// [ 1, 2, 3 ]
Array.from({length: 5}, (v, i) => i);
// [0, 1, 2, 3, 4]
数组去重合并
function combine(){
let arr = [].concat.apply([], arguments); //没有去重复的新数组
return Array.from(new Set(arr));
}
var m = [1, 2, 2], n = [2,3,3];
console.log(combine(m,n)); // [1, 2, 3]
当检测Array实例时, Array.isArray 优于 instanceof,因为Array.isArray能检测iframes.
arr.copyWithin(target[, start[, end]])
const array1 = ['a', 'b', 'c', 'd', 'e'];
console.log(array1.copyWithin(0, 3, 4));
//Array ["d", "b", "c", "d", "e"]
fill() 方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。
const array1 = [1, 2, 3, 4];
console.log(array1.fill(0, 2, 4));//[1,2,0,0]
Array(3).fill(4); // [4, 4, 4]
[1, 2, 3].fill(4, NaN, NaN); // [1, 2, 3]
sort() 方法用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列时构建的
arr.sort([compareFunction])
compareFunction 小于0 不变 大于0改变
[].fill.call({ length: 3 }, 4); =>obj.fn.call(obj2,params)==>obj2.fn(params)
// {0: 4, 1: 4, 2: 4, length: 3}
浙公网安备 33010602011771号