首页 > 编程语言 >【转】[JavaScript] 数组的 map 用法

【转】[JavaScript] 数组的 map 用法

时间:2025-01-17 10:22:32浏览次数:1  
标签:map JavaScript 用法 num let numbers 数组

转自:kimi.ai

map 方法是数组的一个非常强大的方法,它用于创建一个新数组,新数组中的元素是调用一次提供的函数后的返回值。以下是其详细用法:

基本语法

JavaScript复制
array.map(function(currentValue[, index[, array]]) {
    // return element for new array, after executing something
}[, thisArg])
  • array:要操作的数组。
  • function:为数组中的每个元素执行的函数。
    • currentValue:当前正在处理的元素。
    • index(可选):当前正在处理的元素的索引。
    • array(可选):调用 map 方法的数组。
  • thisArg(可选):执行回调时使用的 this 值。

返回值

返回一个新数组,新数组的元素是调用一次提供的函数后的返回值。新数组的长度与原数组相同。

示例

  1. 基本用法:对数组中的每个元素进行操作 JavaScript复制
    let numbers = [1, 2, 3, 4, 5];
    let squaredNumbers = numbers.map(function(num) {
        return num * num;
    });
    console.log(squaredNumbers); // [1, 4, 9, 16, 25]
  2. 使用箭头函数简化代码 JavaScript复制
    let numbers = [1, 2, 3, 4, 5];
    let squaredNumbers = numbers.map(num => num * num);
    console.log(squaredNumbers); // [1, 4, 9, 16, 25]
  3. 同时使用索引和数组参数 JavaScript复制
    let numbers = [1, 2, 3, 4, 5];
    let modifiedNumbers = numbers.map((num, index, arr) => {
        return num + index + arr.length;
    });
    console.log(modifiedNumbers); // [6, 7, 8, 9, 10]
  4. 处理对象数组 JavaScript复制
    let users = [
        { id: 1, name: 'Alice' },
        { id: 2, name: 'Bob' },
        { id: 3, name: 'Charlie' }
    ];
    let names = users.map(user => user.name);
    console.log(names); // ['Alice', 'Bob', 'Charlie']
  5. 使用 thisArg 参数 JavaScript复制
    let numbers = [1, 2, 3, 4, 5];
    let multiplier = {
        factor: 2,
        multiply: function(num) {
            return num * this.factor;
        }
    };
    let multipliedNumbers = numbers.map(multiplier.multiply, multiplier);
    console.log(multipliedNumbers); // [2, 4, 6, 8, 10]

注意事项

  • map 方法不会修改原数组,而是返回一个新数组。
  • map 方法不会遍历数组中被删除或从未被赋值的元素。
  • map 方法的回调函数可以接受多个参数,但通常只需要使用 currentValue 参数。如果需要使用索引或数组本身,可以按需添加。
  • map 方法可以与箭头函数一起使用,使代码更加简洁。
  • map 方法可以用于处理复杂的数据结构,如对象数组,通过返回对象的特定属性来创建新数组。

标签:map,JavaScript,用法,num,let,numbers,数组
From: https://www.cnblogs.com/z5337/p/18676396

相关文章

  • 【转】[JavaScript] 数组的 push 、shift 、splice
    push方法用于将一个或多个元素添加到数组的末尾,并返回新数组的长度。以下是其详细用法:基本语法JavaScript复制array.push(item1[,item2[,...,itemN]])array:要操作的数组。item1,item2,...,itemN:要添加到数组末尾的元素,可以是一个或多个。返回值返回新数组......
  • JavaScript有几种类型值?能否画出它们的内存图?
    JavaScript中主要有八种类型的值,包括七种原始类型(PrimitiveTypes)和一种对象类型(ObjectTypes)。这八种类型分别是:Number:表示数字,包括整数和浮点数。如:42,3.14159。BigInt:表示任意大的整数。这是一种在ES2020中引入的新类型,用于表示比Number.MAX_SAFE_INTEGER更大的整数。如......
  • Bitmap的巧用
    题目关于用户标签的需求:用户标签包括用户的社会属性、生活习惯、消费行为等信息。例如,程序员,有驾照,单身等等。通过用户标签,可以对多样的用户群体进行统计。例如,统计用户的男女比例,统计喜欢旅游的用户数量等。通常的思路,是使用关系型数据库,比如Occupation表示用户职位,gender表示......
  • C语言break和continue用法详解(跳出循环,新手必看)
    使用while或for循环时,如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用break或continue关键字。C语言break关键字在我原创教程里的《C语言switchcase语句》一文中,我讲了:用 break来跳出switch语句。当break关键字用于while、for循环时,会终止循......
  • C语言typedef用法详解(新手必看)
    C语言允许为一个数据类型起一个新的别名,就像给人起“绰号”一样。起别名的目的不是为了提高程序运行效率,而是为了编码方便。例如有一个结构体的名字是stu,要想定义一个结构体变量就得这样写:structstustu1;struct看起来就是多余的,但不写又会报错。如果为structstu起了......
  • unordered_map-STL容器
    时间复杂度和空间复杂度......
  • Vue 开发者必备的 JavaScript 基础知识
    变量与数据类型为什么重要:Vue3的响应式系统严重依赖于正确的变量声明。组合式API要求理解 const 用于ref和reactive对象。类型意识有助于Vue3的模板渲染和prop验证。const count= ref(0)const user= reactive({  name: 'John',  age: 30......
  • HashMap 源码剖析 - put 流程
    HashMap源码剖析-put流程HashMap 是Java集合框架中的一个重要数据结构,用于存储键值对。它具有快速的查找、插入和删除性能。本文将深入剖析 HashMap 的 put 方法流程,帮助读者理解其内部实现原理。一、put 方法概述put 方法用于将指定的键值对插入到 HashMap 中,......
  • HashMap 源码剖析 - put 流程
    HashMap源码剖析-put流程HashMap 是Java集合框架中的一个重要数据结构,用于存储键值对。它具有快速的查找、插入和删除性能。本文将深入剖析 HashMap 的 put 方法流程,帮助读者理解其内部实现原理。一、put 方法概述put 方法用于将指定的键值对插入到 HashMap 中,......
  • 洛谷题单指南-线段树的进阶用法-P3168 [CQOI2015] 任务查询系统
    原题链接:https://www.luogu.com.cn/problem/P3168题意解读:一个任务管理系统,能够查询在某个时间点运行的任务中优先级最小的k个任务的优先级之和。解题思路:由于总时间n不超过100000,考虑针对所有时刻建立可持久化线段树,根节点为root[i]的线段树维护时刻i的任务情况,节点区间表示......