<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title</title>
</head>
<body>
<script>
数组常见的一些用法:
push : 添加元素到数组的末尾;
pop : 删除数组末尾的元素;
unshift : 添加元素到数组的头部;
shift : 删除数组最前面(头部)的元素;
indexOf : 找出某个元素在数组中的索引;
slice : 复制一个数组
splice : 通过索引删除某个元素; ([1,3,4,5].splice(2, 1) 第一个参数表示删除元素的索引,第二个表示要删除元素的个数)
reverse: 颠倒数组中元素的排列顺序;
数组的方法: 这里分为两类; (1). 会改变自身; (2).不会改变自身,
1.会改变自身数组的方法(下面的这些方法会改变调用它们的对象自身的值)
copyWithin(target, start, end) 方法浅复制数组的一部分到同一数组中的另一个位置,并返回它,不会改变原数组的长度。
这个方法不太常用,具体可参考CMD上的介绍
fill(value, start, end) 方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。
例: var array1 = [1, 2, 3, 4];
console.log(array1.fill(0, 2, 4)); // [1,2, 0 ,0];
pop(); 删除数组末尾的元素;l
push(); 添加元素到数组的末尾;
reverse(); 颠倒数组中元素的排列顺序
shift(); 删除数组最前面(头部)的元素;
sort(); 数组排序
arr.sort(function(a, b) {
return a - b; // 升序
});
arr.sort(function(a, b) {
return b - a; // 降序
});
splice(start[, deleteCount[, item1[, item2[, ...]]]]); 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。
可以传多个参数:
第一参数表示指定修改的开始位置;
第二个参数表示要移除的数组元素的个数;
第三个参数表示要插入的元素;可以插入多个元素;
unshift(); 添加元素到数组的头部
2.不会改变自身数组的方法;
concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
includes() 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false。
join() 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。
slice() 方法返回一个新的数组对象,这一对象是一个由 begin和 end(不包括end)决定的原数组的浅拷贝。原始数组不会被改变。 (可用于数组的截取);
toString() 返回一个字符串,表示指定的数组及其元素。和join(',') 的用法类似;
indexOf(searchElement, fromIndex)方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
用法总结:判断一个元素是否在数组里面,
lastIndexOf() 方法返回指定元素(也即有效的 JavaScript 值或变量)在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找,从 fromIndex 处开始。
数组的遍历:
forEach(currentValue, index, array) 方法对数组的每个元素执行一次提供的函数。
every() 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。
遍历数组中的每一个值是否满足要求,返回的值只有 true 和 false
可以使用箭头函数var m = [12, 5, 8, 130, 44].every(x => x >= 10); // false
some() 方法测试是否至少有一个元素可以通过被提供的函数方法。该方法返回一个Boolean类型的值。
返回的结果也是只有ture 和 false两种结果,数组中的值只有一个满足要求,就返回为true
var m = [12, 5, 8, 130, 44].every(x => x >= 10); // true
filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。
使用这个方法返回的结果为一个新的数组
function isBigEnough(element) {
return element >= 10;
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]
filter可以用来过滤数组
var fruits = ['apple', 'banana', 'grapes', 'mango', 'orange'];
function filterItems(query) {
return fruits.filter(function(el) {
return el.toLowerCase().indexOf(query.toLowerCase()) > -1;
})
}
console.log(filterItems('ap')); // ['apple', 'grapes']
console.log(filterItems('an')); // ['banana', 'mango', 'orange']
find() 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。
findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。 返回的是索引值 值的大小从0开始
map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。(这个方法比较常用)
var array1 = [1, 4, 9, 16];
// pass a function to map
const map1 = array1.map(x => x * 2);
console.log(map1);
// expected output: Array [2, 8, 18, 32]
reduce() 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。
一般用来求数组的和
var sum = [0, 1, 2, 3].reduce(function (accumulator, currentValue) {
return accumulator + currentValue;
}, 0);
将二维数组转化为一位数组
var flattened = [[0, 1], [2, 3], [4, 5]].reduce(
function(a, b) {
return a.concat(b);
},
[]
);
数组中陌生的属性
fill() 方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。
var array1 = [1, 2, 3, 4];
console.log(array1.fill(5, 1));
// expected output: [1, 5, 5, 5]
flat(depth) 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。 默认深度为1, 如果参数为 Infinity 则可以展开任意深度的数组
var arr1 = [1, 2, [3, 4]];
arr1.flat();
// [1, 2, 3, 4]
var arr2 = [1, 2, [3, 4, [5, 6]]];
arr2.flat();
// [1, 2, 3, 4, [5, 6]]
var arr3 = [1, 2, [3, 4, [5, 6]]];
arr3.flat(2);
// [1, 2, 3, 4, 5, 6]
移除数组中的空项目
var arr4 = [1, 2, , 4, 5];
arr4.flat();
// [1, 2, 4, 5]
includes() 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false。
var array1 = [1, 2, 3];
console.log(array1.includes(2));
// expected output: true
</body>
</html>
数组方法归类
最新推荐文章于 2023-06-06 15:45:41 发布