吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 463|回复: 6
收起左侧

[讨论] js 编程:用for循环,把旧对象全给新对象,不用展开运算符(...)

[复制链接]
y294945022 发表于 2024-3-15 17:55
[Asm] 纯文本查看 复制代码
// 
用for循环,不利用 展开运算符(...),把旧对象全赋值给新对象,也算是两个对象合并。
// 可是无法解决 覆盖的问题

let obj={a:1,b:'学',c:() => console.log('不要急噪呦!')}
let jj={}









//不利用 展开运算符(...)给新对象赋值,想用for循环,
// 可是无法解决 覆盖的问题

let obj={a:1,b:'学',c:() => console.log('不要急噪呦!')}
let jj={}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

xymoc 发表于 2024-3-15 18:04
本帖最后由 xymoc 于 2024-3-15 18:08 编辑

试试下面的代码吧,不理解你说的覆盖是什么意思
[JavaScript] 纯文本查看 复制代码
let obj={a:1,b:'学',c:() => console.log('不要急噪呦!')}
let jj={}
for (const key in obj) {
    jj[key] = obj[key]
}
console.log(jj)

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
y294945022 + 1 + 1 谢谢@Thanks!

查看全部评分

爱飞的猫 发表于 2024-3-15 18:31
[JavaScript] 纯文本查看 复制代码
Object.assign(jj, obj)


不需要 for 循环也可以。

使用 for 循环还需要考虑一些特殊名词不能覆盖,例如 prototype/__proto__。使用自带的方法就不需要担心这个问题了。

免费评分

参与人数 1热心值 +1 收起 理由
Holt + 1

查看全部评分

 楼主| y294945022 发表于 2024-3-15 19:47
xymoc 发表于 2024-3-15 18:04
试试下面的代码吧,不理解你说的覆盖是什么意思
[JavaScript] 纯文本查看 复制代码
let obj={a:1,b:'学',c:( ...[/quote]

[mw_shl_code=javascript,true][/backcolor][/indent]
确实解决了。
 
可为什么呢?
我理解的用 for in
应该是属性、值 单独一个一个的给加上去。就像:jj ={key + ‘ :‘ +  obj[key]}前者是属性,后面是值。
 
你写的这样,jj[key] = obj[key]  
应该是只把值 给过去了呀,   为何是一套都甩过去了 ???
 楼主| y294945022 发表于 2024-3-15 19:49
爱飞的猫 发表于 2024-3-15 18:31
不需要 for 循环也可以。

[md] ...

你说的很对,什么时候我确实不需要用它时,会想起你的提醒的。
kittylang 发表于 2024-3-15 20:59
[JavaScript] 纯文本查看 复制代码
let dog = { name: "Spot", breed: "Dalmatian" };

// 访问属性 name

dog.name

// 修改属性 name 

dog.name = "joy"

// 访问,赋值也可以像下面这样

dog["name"]

// 字符串字面量的name可以换成变量

let key = "name"

dog[key]


这边建议你简单的学习一下js的语法
myforaward 发表于 2024-3-18 17:36
y294945022 发表于 2024-3-15 19:47
[mw_shl_code=javascript,true]
确实解决了。

赋值语句就是给某个变量赋值。  比如 a=1 是给变量a复制。
如果是对象赋值, a[key]=value; 这时候就等于把key创建出来,然后赋值value。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 16:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表