如何将相同的元素添加到javascript数组n次

2024-01-08

var fruits = [];
fruits.push("lemon", "lemon", "lemon", "lemon");

与其推送相同的元素,不如这样编写一次:

fruits.push("lemon" * 4 times)

对于基元,使用.fill:

var fruits = new Array(4).fill('Lemon');
console.log(fruits);

对于非基元,不要使用fill,因为这样数组中的所有元素都将引用内存中的同一个对象,因此数组中一项的突变将影响数组中的每一项。

const fruits = new Array(4).fill({ Lemon: 'Lemon' });

fruits[0].Apple = 'Apple';
console.log(JSON.stringify(fruits));


// The above doesn't work for the same reason that the below doesn't work:
// there's only a single object in memory

const obj = { Lemon: 'Lemon' };

const fruits2 = [];
fruits2.push(obj);
fruits2.push(obj);
fruits2.push(obj);
fruits2.push(obj);

fruits2[0].Apple = 'Apple';
console.log(JSON.stringify(fruits2));

相反,在每次迭代时显式创建对象,这可以通过Array.from:

var fruits = Array.from(
  { length: 4 },
  () => ({ Lemon: 'Lemon' })
);
console.log(fruits);

有关如何以这种方式创建二维数组的示例:

var fruits = Array.from(
  { length: 2 }, // outer array length
  () => Array.from(
    { length: 3 }, // inner array length
    () => ({ Lemon: 'Lemon' })
  )
);
console.log(fruits);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将相同的元素添加到javascript数组n次 的相关文章

随机推荐

  • 如何对齐此列表中的每个单词?

    我的文件中有一个列表列表 aaaaa bbb ccccccccc aaaaa bbbbbb cccccc aaa bbb ccccccccc aaaaa bbb ccccccccc aaaaa bbbbbb cccccc aaa bbb c
  • 如何在 Node js 中访问 Laravel 环境变量?

    我试图在我的 socket io 服务器安装中访问 laravel 的 APP KEY 环境变量 但不知道如何访问任何 laravel 环境变量 任何帮助表示赞赏 检查此包中是否有 node jsdotenv https www npmjs
  • 找不到目标实体“某个实体”

    我正在使用 ZF2 与原则我收到此错误 在 Subject Entity Subject user 中找不到目标实体 Entity User 这是我的代码片段
  • 将 Maven 项目的依赖项复制到特定文件夹

    我试图在特定文件夹中获取 Maven 项目所需的所有 jar 我用过mvn dependency copy dependencies命令 它给了我里面需要的jar文件taget dependeny folder 虽然我可以使用 move 或
  • 将异常写入 Windows 日志文件

    我想捕获异常并将其记录在 Windows 日志文件中 如何打开并写入 Windows 日志 您可以使用系统 诊断 EventLog WriteEntry http msdn microsoft com en us library syste
  • 如何在OpenCV中检测已知物体?

    我尝试在窗口中实时绘制形状 屏幕上的形状如缠结 矩形 圆形 半圆形和 Z 使用黄色 尺寸和形状可能与原始图像不同 但程序知道所有原始形状 因为它们是预定义的 我想知道如何识别正确的形状 举个例子 有可能做到这一点的方法吗 我可以为此使用模板
  • 通过在 XSLT 中硬编码节点值来对节点进行分组

  • sass 的 webpack 实时热重载

    我正在为 React Starter 构建一个工作流程 并且希望在更改我的 scss 文件时自动重新加载我的浏览器 目前 当我在 index js 文件 设置为入口点 中进行更改时 webpack 将热重载 但是 当我在 scss 文件中更
  • 下载并缓存 UITableViewCell 中的图像

    注意 请勿使用图书馆 这对我来说很重要 值得学习 此外 关于这个问题有各种各样的答案 但我发现没有一个很好地解决了这个问题 请不要标记为重复 提前致谢 我遇到的问题是 如果您在表格中滚动得非常快 您会看到旧图像并闪烁 我读到的问题的解决方案
  • 将值插入到空的 multidim 中。 numpy 数组 [重复]

    这个问题在这里已经有答案了 我需要创建一个形状的空 numpy 数组 10 10 3 意味着我不知道将插入多少个元素 然后我有很多形状的 numpy 数组 1 10 10 3 我想将其一一插入到准备好的数组中 所以 标记将随着插入的元素而增
  • 相机在 Nougat 7.0 中无法工作

    我的相机代码适用于所有 Android 版本 但在 Nougat 7 0 中出现以下错误 java lang NullPointerException Attempt to invoke virtual method java lang S
  • JS获取生成的textnode的值

    我在 for 循环中有这个 Javascript renderAElements i document createElement a renderAElements i setAttribute href renderAElements
  • Pandas read_csv 中的分段错误

    我在 Os X 10 9 上安装了 Python 2 7 5 Pandas 版本为 0 12 0 943 gaef5061 当我下载时这个 train csv 文件 http www kaggle com c crowdflower wea
  • 谁能解释一下这个密码匹配指令吗?

    谁能解释一下这段代码是如何工作的 HTML 标记
  • MPI_Comm_spawn 和 MPI_Reduce

    我有两个程序 主人 产生 工作人员 执行一些计算 我希望主人从工作人员那里获取结果并存储总和 我正在尝试使用 MPI Reduce 从工作人员收集结果 工作人员使用 MPI Reduce 将结果发送给主机 MPI Comm 我不确定这是否正
  • 蓝牙无法在后台模式下扫描附近的设备 Android 11+

    我尝试在后台模式下扫描附近的蓝牙设备 但它在 Android 11 等某些设备上不起作用 这是我的示例代码 在前台工作得很好 授予所有权限
  • chrome mobile和safari mobile中的陀螺仪值不同

    我目前正在构建一个小型全景照片查看器 它可以选择使用陀螺仪导航场景 我从 deviceOrientation 事件中获取数据 并将欧拉角转换为旋转矩阵 然后对其进行一些变换 最终通过 3dMatrix 变换移动 css 立方体 我的问题是
  • Bootstrap 材料设计 CDN

    我想使用 Bootstrap Material design github 页面说我可以从jsdelivr com http www jsdelivr com bootstrap material design 但随后入门 https fe
  • 可滚动元素的顶部被隐藏[重复]

    这个问题在这里已经有答案了 我正在开发一个项目 其中包括一个带有可滚动单元格的表格 这看起来可能不是使用表格的最优雅的方式 但这正是我的用例的方法 不幸的是 我的单元格内容的顶部仍然隐藏 我无法滚动到它 这是该项目的一个非常小的样本 一个大
  • 如何将相同的元素添加到javascript数组n次

    var fruits fruits push lemon lemon lemon lemon 与其推送相同的元素 不如这样编写一次 fruits push lemon 4 times 对于基元 使用 fill var fruits new