我有一个数组data,但是它是用const声明的。我对改变数组中的数据感到很困惑。下面是我的数组:
const person = {
name: "Person A", ---> the data I want to change
age: 100,
favDrinks: [
"coffee",
"temulawak", --->> the data I want to change
"tea"
],
greeting: function() {
console.log("Hello World"); --->> the data I want to change
}
}
如何修改person.name、person.favDrinks[1]、Hello World的问候函数的数据,有没有可能修改常量数据,我想改成文本字符串,下面是我的代码:
function personName(nama ){
let person.name = nama;
person.push("name:" nama );
}
console.log(personName("Molly"));
但是他们都错了,请帮帮我,谢谢。:)
4条答案
按热度按时间34gzjxbg1#
你做错了几件事。
1.您正在推入对象而不是数组。
1.您正在函数中使用
let
重新定义对象person。1.可以更改常量对象的属性;但是,您不能重新指定它。
1.只需添加
return person
这是您在进行更改后得到的结果:
myss37ts2#
您正在使用let创建一个名为
person.name
的变量,这是不可能的,然后将其推送到person中,在您的情况下,这不是您应该做的,而是直接更改值。如果一个常量变量是一个字符串或jumber,它不能被改变。但是如果它是一个数组或对象,它不能被改变,但是在对象或数组中的项目可以被添加,删除,或编辑。
shstlldc3#
person
是一个对象,不是数组。工作演示:
qjp7pelc4#
我在Scrimba上关注“学习javascript“,我陷入了一个奇怪的境地。
我了解到
const
变量不能被重新分配,数组和对象中有一些方法,你可以在其中添加或删除元素(例如arr.push()
)控制台错误:
但神奇的是,当他们用特定的索引为const数组变量分配新值时,它工作得很好。
控制台输出:
现在我不明白为什么会发生这种情况。
期待您的来信。