当前位置: 首页 > 知识库问答 >
问题:

JavaScript按变量设置对象键

齐英韶
2023-03-14

我在JavaScript中构建一些对象,并将这些对象推送到一个数组中,我将要使用的键存储在一个变量中,然后创建我的对象,如下所示:

var key = "happyCount";
myArray.push( { key : someValueArray } );

但是,当我尝试检查每个对象的对象数组时,键是“key”,而不是变量键的值。有没有办法从变量中设置键的值?

为了更好地解释,请拨弄:http://jsfiddle.net/Fr6eY/3/

共有3个答案

诸葛彦
2023-03-14

用这个。

var key = 'a'
var val = 'b'

console.log({[key]:val})

//a:'b'
穆建华
2023-03-14

在ES6中,您可以这样做。

var key = "name";
var person = {[key]:"John"}; // same as var person = {"name" : "John"}
console.log(person); // should print  Object { name="John"}
js lang-js prettyprint-override">    var key = "name";
    var person = {[key]:"John"};
    console.log(person); // should print  Object { name="John"}
杜良骏
2023-03-14

您需要先创建对象,然后使用[]进行设置。

var key = "happyCount";
var obj = {};

obj[key] = someValueArray;
myArray.push(obj);

2021更新:

ECMAScript 2015(ES6)中引入了计算属性名称功能,允许您以JavaScript对象文字符号动态计算对象属性的名称。

const yourKeyVariable = "happyCount";
const someValueArray= [...];

const obj = {
    [yourKeyVariable]: someValueArray,
}
 类似资料:
  • 问题内容: 我正在用JavaScript构建一些对象并将这些对象推入数组,将要使用的键存储在变量中,然后像这样创建对象: 但是,当我尝试检查每个对象的对象数组时,键不是变量键的值。有什么方法可以通过变量设置键的值吗? 问题答案: 您需要先制作对象,然后使用来设置它。 如果您能够使用 ES6 和 Babel ,则可以使用此新功能:

  • 我该怎么做?我尝试使用,但这不适用于对象。 我如何告诉Java使用分数作为比较的值?

  • 问题内容: 我在JavaScript中有一个全局变量(实际上是一个属性,但我认为它并不重要),该变量已经由先前的脚本填充,但是我不希望另一个脚本稍后运行以查看其值,甚至定义。 我已经说过了,它可以用于测试目的,但是我真的不认为这是正确的方法。 你怎么看? 问题答案: 操作者,将删除该对象的属性。它不能删除变量。因此,问题的答案取决于如何定义全局变量或属性。 (1)如果使用创建,则无法删除。 例如:

  • 问题内容: 我希望通过以下方式在Java中实现某些功能: …根据变量名设置变量,而无需硬编码变量名并且不使用任何其他数据结构。这可能吗? 问题答案: 这是使用反射实现的方式(我已将函数重命名;针对不同的字段类型有不同的反射函数):

  • 问题内容: 我正在发出一个ajax请求并将响应存储在一个隐藏字段中。我正在使用getelementbyid.value通过javascript进行此操作。此javascript函数在body onload上。现在获得此值后,我想在C#中使用它我不能有任何按钮onclick事件或任何此类事件,只能有一个隐藏的输入类型 问题答案: 如果一个asp.net HidenField webControl具有

  • 问题内容: 我需要动态设置JS对象属性名称。 结果应为: 问题答案: