map() 方法创建一个新数组,其中填充了对调用数组中每个元素调用所提供函数的结果。它是一种函数式编程技术,允许您将数组的每个元素转换为新元素,从而生成新数组而不修改原始数组。
let newArray = array.map(function callback(currentValue, index, array) { // Return element for newArray }, thisArg);
或者,使用箭头函数:
let newArray = array.map((currentValue, index, array) => { // Return element for newArray });
一个新数组,每个元素都是回调函数的结果。
示例:将数组中的每个数字乘以 2。
const numbers = [1, 2, 3, 4, 5]; const doubled = numbers.map(number => number * 2); console.log(doubled); // Output: [2, 4, 6, 8, 10]
示例:将字符串数组转换为大写。
const fruits = ['apple', 'banana', 'cherry']; const upperFruits = fruits.map(fruit => fruit.toUpperCase()); console.log(upperFruits); // Output: ['APPLE', 'BANANA', 'CHERRY']
示例:从对象数组中提取特定属性。
const users = [ { id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, ]; const names = users.map(user => user.name); console.log(names); // Output: ['Alice', 'Bob']
示例:转换数组中的每个对象。
const products = [ { productId: 1, price: 100 }, { productId: 2, price: 200 }, ]; const discountedProducts = products.map(product => ({ ...product, price: product.price * 0.9, })); console.log(discountedProducts); // Output: // [ // { productId: 1, price: 90 }, // { productId: 2, price: 180 }, // ]
forEach() 示例:
let newArray = array.map(function callback(currentValue, index, array) { // Return element for newArray }, thisArg);
箭头函数提供了编写回调函数的简洁语法。
示例:
let newArray = array.map((currentValue, index, array) => { // Return element for newArray });
TypeScript 为 JavaScript 添加了静态类型,这有助于在编译时捕获错误。
您可以指定数组中元素的类型和返回类型。
示例:
const numbers = [1, 2, 3, 4, 5]; const doubled = numbers.map(number => number * 2); console.log(doubled); // Output: [2, 4, 6, 8, 10]
您可以定义通用函数来处理任何类型。
示例:
const fruits = ['apple', 'banana', 'cherry']; const upperFruits = fruits.map(fruit => fruit.toUpperCase()); console.log(upperFruits); // Output: ['APPLE', 'BANANA', 'CHERRY']
你可以将map()与其他数组方法链接起来,如filter()、reduce()等
示例:
const users = [ { id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, ]; const names = users.map(user => user.name); console.log(names); // Output: ['Alice', 'Bob']
map() 不处理回调内的异步操作。如果需要执行异步操作,请考虑使用 Promise.all() 和 map()。
示例:
const products = [ { productId: 1, price: 100 }, { productId: 2, price: 200 }, ]; const discountedProducts = products.map(product => ({ ...product, price: product.price * 0.9, })); console.log(discountedProducts); // Output: // [ // { productId: 1, price: 90 }, // { productId: 2, price: 180 }, // ]
理解 map() 函数对于 JavaScript 和 TypeScript 中的有效数组操作至关重要。这是一种多功能方法,可让您干净高效地转换数据。记住map():
通过掌握map(),您将编写更简洁、更实用的代码,从而获得更好的可维护性和可读性。
感谢您的阅读。如果你喜欢这个内容,请随时请我喝杯咖啡:
https://buymeacoffee.com/kellyblaire
以上是理解 JavaScript 数组 map() 方法的详细内容。更多信息请关注PHP中文网其他相关文章!