返回
手写算法精选:[12] 探索数组的奥秘—map()方法的魅力
前端
2023-12-19 12:54:19
[算法 1] 构建一个平方数组
问题: 给定一个数字数组,将每个数字平方并返回一个新数组。
const numbers = [1, 2, 3, 4, 5];
const squaredNumbers = numbers.map((number) => {
return number * number;
});
console.log(squaredNumbers); // [1, 4, 9, 16, 25]
[算法 2] 计算数组元素的总和
问题: 给定一个数字数组,计算并返回所有元素的总和。
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.map((number) => {
return number;
}).reduce((a, b) => a + b, 0);
console.log(sum); // 15
[算法 3] 将数组中的字符串转换为大写
问题: 给定一个字符串数组,将每个字符串转换为大写并返回一个新数组。
const strings = ['hello', 'world', 'javascript'];
const upperCaseStrings = strings.map((string) => {
return string.toUpperCase();
});
console.log(upperCaseStrings); // ['HELLO', 'WORLD', 'JAVASCRIPT']
[算法 4] 提取数组中对象的特定属性
问题: 给定一个对象数组,提取并返回每个对象中特定属性的值。
const objects = [
{ name: 'John', age: 25 },
{ name: 'Mary', age: 30 },
{ name: 'Bob', age: 35 }
];
const ages = objects.map((object) => {
return object.age;
});
console.log(ages); // [25, 30, 35]
[算法 5] 过滤数组中的偶数
问题: 给定一个数字数组,过滤并返回数组中所有偶数。
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const evenNumbers = numbers.filter((number) => {
return number % 2 === 0;
});
console.log(evenNumbers); // [2, 4, 6, 8, 10]
[算法 6] 查找数组中最大的数字
问题: 给定一个数字数组,查找并返回数组中最大的数字。
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const maxNumber = numbers.reduce((a, b) => {
return Math.max(a, b);
});
console.log(maxNumber); // 10
[算法 7] 将数组中的数字转换为字符串
问题: 给定一个数字数组,将每个数字转换为字符串并返回一个新数组。
const numbers = [1, 2, 3, 4, 5];
const stringNumbers = numbers.map((number) => {
return number.toString();
});
console.log(stringNumbers); // ['1', '2', '3', '4', '5']
[算法 8] 检查数组中是否存在特定元素
问题: 给定一个数组和一个元素,检查数组中是否存在该元素并返回布尔值。
const numbers = [1, 2, 3, 4, 5];
const element = 3;
const exists = numbers.some((number) => {
return number === element;
});
console.log(exists); // true
[算法 9] 删除数组中的重复元素
问题: 给定一个数组,删除其中的重复元素并返回一个新数组。
const numbers = [1, 2, 3, 4, 5, 1, 2, 3];
const uniqueNumbers = [...new Set(numbers)];
console.log(uniqueNumbers); // [1, 2, 3, 4, 5]
[算法 10] 将数组分为奇数和偶数子数组
问题: 给定一个数字数组,将其分为奇数和偶数两个子数组并返回。
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const oddEvenArrays = numbers.reduce((acc, number) => {
const isEven = number % 2 === 0;
acc[isEven ? 'even' : 'odd'].push(number);
return acc;
}, { odd: [], even: [] });
console.log(oddEvenArrays); // { odd: [1, 3, 5, 7, 9], even: [2, 4, 6, 8, 10] }