numbers = [1, 1, 1, 1, 1];
numbers.fill(0, -4, -1);
console.log(numbers);
// Output : [1, 0, 0, 0, 1]
7.filter
返回仅包含验证条件的元素的新数组 。
const names = ["Joe", "Jhon", "Alice"];
const namesWith4LettersOrLess = names.filter((name) => name.length <= 4);
console.log(namesWith4LettersOrLess); // Output : ["Joe", "Jhon"]
8. find
找到第一个验证条件的元素并返回它 。否则,返回未定义 。
const names = ["Joe", "Jhon", "Alice"];
const firstNameMatchStartWithJ = names.find((name) => name.startsWith("J"));
console.log(firstNameMatchStartWithJ); // Output : Joe
const firstNameMatchStartWithK = names.find((name) => name.startsWith("K"));
console.log(firstNameMatchStartWithK); // Output : undefined
9. findIndex
找到第一个验证条件的元素并返回其索引 。否则,返回-1 。
const names = ["Joe", "Jhon", "Alice"];
const firstNameMatchStartWithJ = names.findIndex((name) => name.startsWith("J"));
console.log(firstNameMatchStartWithJ); // Output : 0
const firstNameMatchStartWithK = names.findIndex((name) => name.startsWith("K"));
console.log(firstNameMatchStartWithK); // Output : -1
10.findLast
找到验证条件的最后一个元素并将其返回 。否则,返回未定义 。
const names = ["Joe", "Jhon", "Alice"];
const lastNameMatchStartWithJ = names.findLast((name) => name.startsWith("J"));
console.log(lastNameMatchStartWithJ); // Output : Jhon
const lastNameMatchStartWithK = names.findLast((name) => name.startsWith("K"));
console.log(lastNameMatchStartWithK); // Output : undefined
11. findLastIndex
找到最后一个验证条件的元素并返回其索引 。否则,返回-1 。
const names = ["Joe", "Jhon", "Alice"];
const lastNameMatchStartWithJ = names.findLastIndex((name) => name.startsWith("J"));
console.log(lastNameMatchStartWithJ); // Output : 1
const lastNameMatchStartWithK = names.findLastIndex((name) => name.startsWith("K"));
console.log(lastNameMatchStartWithK); // Output : -1
12. flat
在每个元素中展开任何已建立的数组,并根据给定的深度级别继续展开嵌套的数组 。返回新的平面数组 。
const numbers = [1, 2, [3, [4, [5, 6]]]];
const flatNumbersLevel1 = numbers.flat();
console.log(flatNumbersLevel1); // Output : [1, 2, 3, [4, [5, 6]]]
const flatNumbersLevel2 = numbers.flat(2);
console.log(flatNumbersLevel2); // Output : [1, 2, 3, 4, [5, 6]]
const flatNumbers = numbers.flat(Infinity);
console.log(flatNumbers); // Output : [1, 2, 3, 4, 5, 6]
13. flatMap
返回一个新数组,其中所有元素均由给定回调修改,并按 1 深度级别展平 。
const users = [
{
name: "Jhon",
votes: [3, 4]
},
{
name: "Joe",
votes: [4, 5]
}
];
const allVotes = users.flatMap((user) => user.votes);
console.log(allVotes); // Output : [3, 4, 4, 5]
14. forEach
迭代数组并对每个元素应用给定的回调 。
const names = ["Joe", "Jhon", "Alice"];
names.forEach((name, index, array) =>
console.log(`${name} at index ${index} in the array [${array.join(", ")}]`)
);
// Output : Joe at index 0 in the array [Joe, Jhon, Alice]
// Output : Jhon at index 1 in the array [Joe, Jhon, Alice]
// Output : Alice at index 2 in the array [Joe, Jhon, Alice]
15. from
从可迭代或类似数组创建数组 。
/** Create an array from string */
console.log(Array.from("hello"));
// Output : ["h", "e", "l", "l", "o"]
/** Create an array from an other array and Apply map method */
console.log(Array.from([1, 2, 3], (x) => x * 2));
// Output : [2, 4, 6]
16. fromAsync
从异步可迭代、可迭代或类数组创建数组 。
/** Create an array from an array of async elements */
const asyncArray = [
new Promise((resolve) => resolve(0)),
new Promise((resolve) => resolve(1))
];
推荐阅读
- 世上真的有鬼吗?科学终于做出了完美解释! 世上真的有鬼吗
- 拒绝道歉!曝黄日华回应争议,解释发火原因,港媒:怒火难平
- 为什么游戏上瘾者通过减量法,不可能成功?
- 怎么通过微信号查找手机号
- 袁泉,曾胖到120斤,通过3个方法瘦了下来,特别适合懒人减肥
- ps能咋画曲线,20 谁能详细的给我解释下PHOTOSHOP里曲线命令的意思以及怎么去调整色彩
- 通过达克效应,透视汪小菲和大S婚姻关系的本质!
- 什么动物怕热,大象一般是通过什么方式来防晒的
- Python 既是解释型语言,也是编译型语言
- 如何通过三行配置解决在Kubernetes中的gRPC扩展问题