我正在尝试类似的方法,但是此示例不起作用。
jsObj = {};
for (var i = 1; i <= 10; i++) {
jsObj{'key' + i} = 'example ' + 1;
}
如何制作这样的动态密钥?
方括号:
jsObj['key' + i] = 'example' + 1;
在JavaScript中,所有数组都是对象,但并非所有对象都是数组。主要区别(而且很难用直接的JavaScript和普通对象来模仿)数组实例维护该length
属性,以便它反映一个加属性名称的数字值,该属性的名称是数字,并且在转换为数字时其值,是所有此类属性中最大的。这听起来很奇怪,但它只是意味着给定一个数组实例,有相似的名字属性"0"
,"5"
,"207"
,等等,都在他们的存在决定的价值被特殊处理length
。而且,最重要的是,length
可以
设置 的值以 删除 此类属性。将length
数组的设置为0
有效地删除名称看起来像整数的所有属性。
好的,这就是使数组特别的原因。但是,所有这些与JavaScript [ ]
运算符的工作方式完全无关。该运算符是对任何对象都起作用的对象属性访问机制。在这方面要特别注意的是,就简单属性访问而言,数字数组属性名称并不特殊。它们只是碰巧看起来像数字的字符串,但是JavaScript对象属性名称可以是您喜欢的任何类型的字符串。
因此,[ ]
运算符在for
循环遍历数组的循环中的工作方式:
for (var i = 0; i < myArray.length; ++i) {
var value = myArray[i]; // property access
// ...
}
确实与[ ]
访问名称为某些计算字符串的属性时的工作方式没有什么不同:
var value = jsObj["key" + i];
两种情况下,[ ]
那里的操作员都在做 完全相同 的事情。换句话说,在某种情况下,所涉及的对象恰好是一个数组这一事实并不重要。
使用 设置 属性值时[ ]
, 除了 维护length
属性的特殊行为 外 ,故事是相同的。如果在数组实例上使用数字键设置属性:
myArray[200] = 5;
然后(假设“ 200”是最大的数字属性名称),该length
属性将被更新201
为该属性分配的副作用。但是,如果对普通对象执行相同的操作:
myObj[200] = 5;
没有这种副作用。数组和对象的称为“ 200”的属性将以5
完全相同的方式设置为该值。
可能有人认为,因为这种length
行为很方便,所以您最好使Array构造函数的 所有
对象实例代替普通对象。这没有什么直接的错误(尽管可能会造成混淆,特别是对于那些熟悉某些其他语言的人来说,某些属性包含在,length
但其他属性中没有)。但是,如果您正在使用JSON序列化(这是很常见的事情),请了解将数组实例序列化为JSON的方式
仅 涉及数字命名的属性。添加到数组的其他属性将永远不会以序列化的JSON形式出现。因此,例如:
var obj = [];
obj[0] = "hello world";
obj["something"] = 5000;
var objJSON = JSON.stringify(obj);
“ objJSON”的值将是一个包含just的字符串["hello world"]
;“东西”财产将丢失。
如果您能够使用ES6 JavaScript功能,则可以使用计算属性名称轻松处理此问题:
var key = 'DYNAMIC_KEY',
obj = {
[key]: 'ES6!'
};
console.log(obj);
// > { 'DYNAMIC_KEY': 'ES6!' }
我试图从字符串数组中创建一个新对象,但无法正确创建所需的对象。 我正在尝试创建一个对象,比如: 这是我的代码: null null
问题内容: 首先,我使用Cheerio进行一些DOM访问并使用Node.js进行解析。美好的时光。 情况如下: 我具有创建对象所需的功能。该对象为其键和值使用变量,然后返回该单个对象。例: 它输出: (返回对象fyi的数组) 我实际上需要成为的字符串。 考虑到我要做什么,在Java中将字符串分配为键的最佳方法是什么? 问题答案: 在JavaScript 的新ES2015标准(以前称为ES6)中,可
我想创建一个对象动态,例如在JavaFX中的一个圆。我的代码会像这样。 我现在的问题是如何增加每个圆的独特性。例如,如果我要添加每个圆的不同颜色和大小。我该如何实现呢?请帮忙。
本文向大家介绍如何从JavaScript中的变量值创建对象属性?,包括了如何从JavaScript中的变量值创建对象属性?的使用技巧和注意事项,需要的朋友参考一下 JS有2种用于创建对象属性的符号,即点符号和方括号符号。 要从变量创建对象属性,您需要通过以下方式使用方括号表示法- 示例 输出结果 这将给出输出- ES6引入了计算属性名称,您可以执行以下操作: 示例 输出结果 这将给出输出-
本文向大家介绍如何在JavaScript循环内创建动态变量名?,包括了如何在JavaScript循环内创建动态变量名?的使用技巧和注意事项,需要的朋友参考一下 为此,您需要向当前范围添加属性。使用它来实现此目的,这适用于程序中的当前作用域- 上面将获得您想要的内容,并像下面这样检索它- 如上所示,它将为您提供文本“在此处添加”。
问题内容: 这是我的对象文字: 我如何添加字段与对象? 问题答案: 有两种向对象添加新 属性的 方法: 使用点表示法: 使用方括号表示法: 当您知道属性名称时,将使用第一种形式。动态确定属性名称时,使用第二种形式。像这个例子: 甲 真实 JavaScript数组可使用任一构造: 数组文字符号: 数组构造器符号: