你应该知道的所有JavaScript数组方法
作者:互联网
.length()
为我们提供了数组的长度。
let items = ["pen","paper","pencil"]
console.log(items.length);// 3
.concat()
与字符串concat方法完全相同。
let items = ["pen","paper","pencil"];
let grocery = ["bread", "milk", "eggs"];
console.log(items.concat(grocery));
//["pen", "paper", "pencil", "bread", "milk", "eggs"]
We don not have any ‘+’ concat method for arrays
.every()
在每个方法中,数组的每个元素都必须在函数
中传递条件 这里的语法是array.every(function_name)
let items = ["pen","paper","pencil"];
function isString(item){
return typeof item === 'string';
}
console.log(items.every(isString)); // true
let items = ["pen","paper","pencil", 23];
function isString(item){
return typeof item === 'string';
}
console.log(items.every(isString)); // false
.fill()
正如名称所建议的那样,填充方法用已传递的项填充数组
let items = ["pen","paper","pencil","glue","scissors"];
console.log(items.fill("crayon", 1,3));// ["pen", "crayon", "crayon","glue","scissors"]
console.log(items.fill("crayon", 1)); // ["pen", "crayon", "crayon", "crayon", "crayon"]
console.log(items.fill("crayon")); // ["crayon", "crayon", "crayon", "crayon", "crayon"]
const arr = Array(10).fill(20);
console.log(arr); // [20, 20, 20, 20, 20, 20, 20, 20, 20, 20]
此处的索引 1 到 3(不包括 3)用输入的字符串填充。
.filter()
在每种方法中,我们检查数组中的每个元素是否都传递了特定条件。
在过滤器方法中,我们返回通过特定条件的元素。
let items = ["pen","paper","pencil","glue","scissors"];
const new_items = items.filter((item) => item.length > 4 );
console.log(new_items); // ["paper", "pencil", "scissors"]
在上面的例子中,我们可以看到new_items返回一个数组,其中每个元素的长度都大于 4。
.findIndex()
findIndex 只是在数组中查找元素的索引。
let items = ["pen","paper","pencil","glue","scissors"];
const new_items = items.findIndex((item) => item === "paper" );
console.log(new_items); // 1
.flat()
flat方法用于平展数组。扁平化数组是什么意思?
扁平化数组只是意味着,如果你看到一个这样的数组
let arr = [1,2,3,[4,5],[6,7,[8,9,10]],11,12];
console.log(arr.flat()); // [1, 2, 3, 4, 5, 6, 7, [8, 9, 10], 11, 12]
我们可以在这里观察到的一件事是 .flat() 只扁平化了一层深度。数组 [8,9,10] 仍然存在于我们的输出中,因为它有 2 级深度。
在这种情况下,我们可以执行以下操作
let arr = [1,2,3,[4,5],[6,7,[8,9,10]],11,12];
console.log(arr.flat(2)); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
当我们在 flat() 中指定一个数字作为参数时,我们可以根据需要深入多个级别。但是,如果我们不知道阵列有多深怎么办。在这种情况下,我们可以使用递归函数来解决这个问题。请参考以下内容:
let arr = [1,2,3,[4,5],[6,7,[8,9,10]],11,12];
const result = [];
function flattenArray(arr){
arr.forEach((ele) => (Array.isArray(ele) ? flattenArray(ele) : result.push(ele)));
return result;
}
console.log(flattenArray(arr)); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
.forEach()forEach()
从字面上遍历数组中的每个对象
let items = ["pen","paper","pencil","glue","scissors"];
let arr = items.forEach((item) => console.log(item));
//
"pen"
"paper"
"pencil"
"glue"
"scissors"