【问题标题】:JavaScript Object declaration by combining two different keys通过组合两个不同的键来声明 JavaScript 对象
【发布时间】:2017-05-30 06:14:19
【问题描述】:

我不确定这是否可能。所以我在这里寻找答案。

有没有办法声明一个对象,比如:

var objectName = {
    key1      : 'value1',

    key2,key3 : 'value2;
}

我正在尝试将 key2key3 组合在一起。

【问题讨论】:

  • 组合就像将相同的值分配给两个不同的键或组合两个键以获得一个键?
  • var objectName = { key1: 'value1', key2: 'value2', key3: 'value2' } 有什么问题?
  • 目标是将相同的值分配给两个不同的键。
  • Objective is to assign same value to two different keys 然后这样做,就像建议的那样...... value2 与 value2 相同,不是吗?
  • var objectName = { key1: 'value1', key2: 'value2'}; objectName.key3 = objectName.key2;

标签: javascript object key literals


【解决方案1】:

如果您不想像 Patric Roberts 所说的那样分配值,请创建一个键数组并为这些键设置相同的值,如下所示:

var obj = {};
obj['key1'] = 1;

// Array of keys
var arrayOfKeys = ['key2','key3','key4'];
// Common value for keys in array
var val = 2;

// Iterate the array
for(var k in arrayOfKeys) {
  obj[arrayOfKeys[k]] = val;
}
console.log(obj);

您也可以查看answer

【讨论】:

  • for(var k of arrayOfKeys) { obj[k] = val; } 似乎更干净一些,尽管这仍然是非常矫枉过正
【解决方案2】:

您可以使用稍微不同的方法,它也适用于原始值,方法是添加一个对象来保持对数组中不同键的相同引用。例如,你有一个值对象,比如

temp = {
    value: 42
}

还有一个数组,比如

object = {
    key2: temp,
    key3: temp
}

那么你可以独立地使用键来获取被引用对象的值。

要更改值,您需要使用

object.key2.value = 2000;
console.log(object.key3.value); // 2000

【讨论】:

    猜你喜欢
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-29
    • 2019-03-05
    • 1970-01-01
    • 2018-01-13
    • 2022-11-18
    相关资源
    最近更新 更多