如何解决将值设置为数组的方式JavaScript
我知道可以通过以下两种方式设置Object Property
。
Obj1.age = 29;
Obj1[age] = 29;
对于array
,我只知道一种方法。
arr[3] = 29;
但是我觉得必须有其他方法来设置数组中的值。有人可以让我知道其他方式(除此以外)吗?
解决方法
让我们首先澄清一下:在语法级别上没有“值”的概念。您可以写
Obj1.age = 29;
无论Obj1
的实际值是多少。当然,赋值是否可以在运行时上运行取决于实际值。但是语法上这段代码是正确的。
在处理数组时我们仅使用括号符号(arr[0] = 42
)的原因不是因为该值是数组,而是因为这是使用 numbers时唯一有效的语法作为商品名称。 arr
的实际值不相关。
这里我使用的是对象,但点符号仍然无效:
var obj = {};
obj.0 = 42;
括号表示法有效:
obj[0] = 42;
有关更多信息,请参见:JavaScript property access: dot notation vs. brackets?。
但是,由于数组只是对象,因此您可以为数组分配/访问任何其他属性。例如。 “截断”数组的一种常见方法是为.length
分配一个新值:
var arr = [1,2,3];
arr.length = 0;
console.log(arr);
除语法外,对象和数组还具有一些方法来改变属性:
您可以在任何对象上使用Object.defineProperty
:
var arr = [];
Object.defineProperty(arr,{value: 42,enumberable: true,configurable: true});
console.log(arr);
数组还特别具有以下突变方法:copyWithin
,push
,pop
,splice
,unshift
。
这是另一种方法,但是您的方法更干净:
arr.splice(3,29);
但是它将所有其余元素向右移动一个位置,因此,如果位置4上有元素,它将变成第5个元素,依此类推。
,不,数组没有别的方法,因为数组不能与像对象这样的键值概念一起工作,它们没有唯一的标识符(哪些对象是键)。它们只能通过它们的索引来调用,您可以像arr[index]
一样访问它们。
还可以使用Object Object为对象定义更多属性(是的,我知道这听起来很愚蠢):它具有类似Object.defineProperty
的功能,您可以找到所有的here
对于数组,这是最方便的方法,也是迄今为止最常用的方法,甚至可能是唯一的方法。是将其设置为arr[3] = 29
,我建议您这样做,而不要做其他事情。
对于对象,最常见的方式是执行Obj1.age = 29,有些人也执行Obj1 [“ age”] = 29(与示例中的示例不同,您需要年龄左右的引号)。真的没有理由拥有/使用其他东西
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。