javascript for循环更改原始列表变量

2023-12-07

我有一个名为响应的对象集合,我正在创建另一个名为的变量object这是一个空对象并创建object.array并将其设置为响应变量。

我想我正在创建一个新的范围。但是,如果我在里面设置年龄object.array作为空,这将我的响应数组中的年龄设置为null.

为什么会发生这种情况?如何创建一个不影响原始变量的重复变量?我需要保持上述变量不变。所以对象需要是一个对象,我需要创建一个数组,其中设置为响应,并且它需要位于for loop.

这是我的代码:

function runThisLoop () {

    var response = [{
        name: 'Name A',
        age: 2
    },
    {
        name: 'Name B',
        age: 7
    }]


    var object = {}
    object.array = response

    for (var val of object.array) {
        val.age = null
    }

    console.log("response", response)
    console.log("object.array", object.array)
}

runThisLoop()

您只是通过引用复制它们,这意味着它们位于内存中的同一位置因此,无论您尝试修改其中一个,另一个都会被修改,为了防止这种情况,您应该通过以下任一方式传递您:

  1. Using Array.from()
object.array = Array.from(response);
  1. Using slice()
object.array = response.slice();
  1. Using 扩展语法 (...)
object.array = [...response];
  1. Using JSON.parse/JSON.strigify
object.array = JSON.parse(JSON.stringify(response));

但在您的特定情况下,只有最后一个选项才能按预期工作由于您有一个嵌套数组,因此您需要元素的深层副本.

所以最终的结果应该是这样的:

function runThisLoop() {

  var response = [{
      name: 'Name A',
      age: 2
    },
    {
      name: 'Name B',
      age: 7
    }
  ]


  var object = {}
  object.array = JSON.parse(JSON.stringify(response));

  for (var val of object.array) {
    val.age = null
  }

  console.log("response", response)
  console.log("object.array", object.array)
}

runThisLoop()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javascript for循环更改原始列表变量 的相关文章

  • Sonar 中的 javascript 代码覆盖率

    我是使用 Sonar 和插件进行 javascript 代码覆盖的新手 使用 Sonar 分析时 有哪些可能性可以找出 javascript 代码的质量 包括代码覆盖率 目前我正在使用 karma runner 它提供代码覆盖率报告 可以在
  • 如何强制折断不可折断的字符串?

    我有一个根据数据库中包含的数据生成的 HTML 页面 数据库有时包含浏览器无法分解的长字符串 因为这些字符串不包含可分解的字符 空格 点 逗号等 有没有办法使用 html css 甚至 javascript 来解决这个问题 看到这个link
  • 在 setInterval / setTimeout 中使用变量作为时间[重复]

    这个问题在这里已经有答案了 这是一个示例情况 var count time 1000 setInterval function count 1 time 上面的代码会将 count 变量加 1 即 1000 毫秒 看来 setInterva
  • 在 R 中提取 data.frames 列表的名称以及 data.frame 中的值

    在下面的代码中 j是 data frames 的命名列表 我想知道是否有办法 a 提取变量的数值 即one short and one long 在 data frames 内并附加它们的相关名称 即 AAA or BBB or CCC 到
  • html canvas动画卡顿

    谁能解释为什么提供的画布动画断断续续 我创建了一个测试存根来演示该问题 我在桌面上的 FF Chrome IE 以及 Android 上的 FF 和 Chrome 中看到了卡顿现象 口吃是由于垃圾收集造成的吗 似乎 raf 在每次调用时都会
  • JavaScript:常量属性

    在javascript中 我可以将对象的属性声明为常量吗 这是一个示例对象 var XU Cc Components classes or function aXU this Cc Components classes var XU new
  • 如何循环遍历对象数组并生成键值对?

    我有一个像这样的对象数组 let someObj items id 12 value true id 34 value true id 56 value false 我想将其添加到现有对象中 其中 id 是该对象的键 如下所示 let ob
  • 窗口大小调整触发的 DOM 事件

    我有一个布局相当复杂的页面 最初打开页面时 某些元素的对齐存在问题 但是 可以通过更改浏览器窗口的大小来 永久 解决此问题 显然 我不希望用户必须调整浏览器窗口的大小才能使页面正确显示 所以我想知道是否有一种方法可以在页面首次加载时以编程方
  • ReactCSSTransitionGroup 组件WillLeave 未调用

    我尝试使用 ReactCssTransition 但不知何故该事件没有被调用 componentWillLeave 这是我的组件 import React Component from react import TransitionGrou
  • 如何在 javascript 中基于类型字符串创建新对象?

    如何基于变量类型字符串 包含对象名称 在 javascript 中创建新对象 现在我有 随着更多工具的出现 列表会变得更长 function getTool name switch name case SelectTool return n
  • Swift 使用哪种通用排序算法?它在排序数据上表现不佳

    我一直在挑选和探索 Swift 标准库sort 其函数为Array类型 令我惊讶的是 我注意到它在已经排序的数据上表现不佳 对数组进行排序Int打乱顺序似乎比对已经排序的同一个数组进行排序快 5 倍 对已打乱顺序的对象数组进行排序比对已按排
  • 嵌套循环结果

    我真的不知道如何找出嵌套循环的结果 例如 在下面的伪代码中 我无法弄清楚执行结束时会给出什么 如果有人给我一个简单的解决方案 我会很高兴 r lt 0 for i lt 1 to n do for j lt 1 to i do for k
  • jQuery 悬停时滚动到 div 并返回到第一个元素

    我基本上有一个具有设定尺寸的 div 和overflow hidden 该 div 包含 7 个子 div 但一次只显示一个 我希望当它们各自的链接悬停时能够平滑地垂直滚动 但是 第一部分 div 没有链接 并且是没有悬停链接时的默认部分
  • JavaScript Promise 不执行 .then()

    我在 JavaScript 中的 Promise 方面遇到了一些问题 我想做的是获得一个地址列表 然后对于每个地址 我需要调用地理编码 API 来获取 lat lng 然后我将继续将标记与热图一起绘制 这是我的代码 let promiseK
  • 为什么这个二维指针表示法有效,而另一个则无效[重复]

    这个问题在这里已经有答案了 这里我编写了一段代码来打印 3x3 矩阵的对角线值之和 这里我必须将矩阵传递给函数 矩阵被传递给指针数组 代码可以工作 但问题是我必须编写参数的方式如下 int mat 3 以下导致程序崩溃 int mat 3
  • 是否可以将请求标头添加到 CORS 预检请求中?

    我有一个从外部服务器 不是服务器 访问 API 的网站 为网站提供服务 通过简单的XmlHttpRequest 见下文 那个API 需要将用于访问服务的 API 密钥添加为请求标头 然而 正如这些CORS https developer m
  • Outlook 加载项,无法读取未定义的属性“BeginRequestEventArgs”

    我使用 Visual Studio 开发了 Outlook 插件 我的插件有一个按钮 用于填充会议邀请正文中的详细信息并添加所需的与会者 这在 99 的情况下都有效 但是 时不时地它会给我下面的 JavaScript 错误 Uncaught
  • Javascript onload 不起作用[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在使用
  • 如何为 Imagus 悬停缩放扩展开发自定义过滤器?

    当我读到关于悬停缩放是邪恶的 http www reddit com r YouShouldKnow comments 1wjrc8 ysk that the hover zoom extension is spyware 哎呀 有两篇文章
  • DOM 解析器 Chrome 扩展内存泄漏

    问题 我开发了一个扩展程序 可以拦截 Web 请求 获取 Web 请求来源的 HTML 并对其进行处理 我使用 DOMParser 来解析 HTML 并且意识到 DOMParser 正在导致大量内存泄漏问题 最终导致 chrome 扩展崩溃

随机推荐

  • 特定存储库的 Git 全局配置?

    意思是 有类似每个回购部分的东西 repo url 覆盖全局 不适用于特定存储库 选项 core filemode false editor notepad repo example com repo1 git core filemode
  • R 中的“错误恢复文件幻数”错误

    As in 加载 R 工作区时什么可能导致 错误的幻数 错误以及如何避免它 and R 有幻数 PNG 错误 我得到一个错误恢复文件幻数 error gt load fossilien dat Error bad restore file
  • 沙盒阻止我格式化字符串

    我有一个简单的常规脚本 node master echo I am about to try to use String format def jjj String format bob echo jjj 如果我将此脚本直接放入我的作业配置
  • GridLayout 未填充 JPanel

    我遇到 GridLayout 问题 并且整个 JPanel 未填充 我有一个 N M 网格 我用 N M 瓷砖填充它 它们扩展了 JPanel 添加所有这些图块后 JPanel 的底部和右侧仍然有空间 我认为 GridLayout 应该填满
  • Stateflow 在 reyclerview android kotlin 中引用整个数据

    嘿嘿我正在学习状态流在 Android 科特林中 我正在创建一个反向对话日历视图回收者视图 In my mainactivity有一个fragment 里面有我reyclerview 我的目标是做分页的东西 in my 回收者视图所以我先加
  • 使用 procf//status 了解进程状态

    我正在 Solaris 上工作 我知道如果有一个进程正在运行 就会有一个名为 proc
  • D lang - 在同一程序中使用 read 和 readln()

    我的 D 程序遇到了一个非常奇怪的问题 read s variable 本身工作得很好 而 readln variable 本身工作得很好 但是当我将两者放在一起时 readln 似乎被忽略了 使用 gdc 和 dmd 均发生错误 impo
  • 从头开始制作Android聊天应用程序

    我需要为Android 制作聊天应用程序 我想到使用PHP脚本来实现聊天应用程序 基本思想是将消息从android客户端发送到PHP脚本 并利用PHP脚本将消息发送到MySQL数据库 这些消息将广播给其他人 但问题是自动向其他人广播消息 有
  • 从列表列表中删除重复项

    我有一个Python列表列表 k 1 2 4 5 6 2 1 2 3 4 我想从中删除重复的元素 如果它是一个普通列表而不是我可以使用的列表set 但不幸的是 该列表不可散列 并且无法创建列表集 仅元组 所以我可以将所有列表转换为元组 然后
  • 如何创建文件下载按钮? 和 Axios 不工作

    我试图在我的个人网站上创建一个下载按钮 供人们下载我的 docx 简历 但遇到了一些问题 首先我用简单的 href 链接来做到这一点 a href xxx docx a
  • Jquery对话框按钮返回值

    我正在使用jquery对话框 我想要实现的是当用户按 确定 时 编程继续进行 当按 取消 时 它停止 function displaymessage confirm dialog buttons OK function this dialo
  • C# 中同步线程访问和写入

    我有一个用 C 编写的多线程端口扫描仪应用程序 我想在应用程序运行时将一些内容打印到控制台和日志文件 因此 我有以下帮助程序类 它可以很好地写入日志文件和控制台 public class Output private const strin
  • R data.table - 将函数 A 应用于某些列,将函数 B 应用于其他一些列

    我想聚合数据表的行 但聚合函数取决于列的名称 例如 如果列名称是 variable1 or variable2 然后应用mean 功能 variable3 然后应用max 功能 variable4 然后应用sd 功能 我的数据表总是有一个d
  • 带按钮的 Html 两种语言选项(无需重定向到不同页面)

    我正在尝试为网站提供第二语言选项 以下是该项目的详细信息 1 我并没有尝试使用谷歌翻译系统或任何其他自动翻译服务来更改整个网站语言 2 我只是想翻译网站中的主要描述部分 3 我已经编写并保存了描述文本的翻译版本 4 我还在一个单独的文件中制
  • 如何正确观察非标准事件?

    我是反应式扩展的新手 正在处理一个具有如下定义事件的 COM 库 public delegate void MyDelegate int requestId double price int amount public event MyDe
  • OSError:安装 h2o 时版本不匹配?

    我是 H2o 新手 总部设在文档我为 python 安装了 H2o pip install h2o Then In import h2o h2o init Out OSError Traceback most recent call las
  • 如何将无符号整数加载到 SIMD 中

    我有一个 C 程序 其中有一些无符号整数数组 我正在使用这个声明uint32 t 我想使用 SIMD 对每个数组中存储的数据执行一些操作 这就是我陷入困境的地方 因为看起来大多数 SSE 和 SSE2 函数只支持 float 和 doubl
  • 如何从动态范围中分割文本?

    我从 ERP 系统下载了一个很长的数据集 他们是管子 划定的 我必须将其拆分为单独的列 我可以用FILTERXML or TEXTSPLIT 将它们拆分为列 我试图动态使用 Textsplit 函数 以便如果有任何新数据到达末尾行 它会自动
  • Swift 的 Guard 关键字

    Swift 2 引入了guard关键字 可用于确保各种数据已配置就绪 我看到的一个例子这个网站演示了一个submitTapped函数 func submitTapped guard username text characters coun
  • javascript for循环更改原始列表变量

    我有一个名为响应的对象集合 我正在创建另一个名为的变量object这是一个空对象并创建object array并将其设置为响应变量 我想我正在创建一个新的范围 但是 如果我在里面设置年龄object array作为空 这将我的响应数组中的年