gpt4 book ai didi

javascript - 以另一个对象的属性作为键的对象

转载 作者:行者123 更新时间:2023-11-28 18:27:32 24 4
gpt4 key购买 nike

我有一个这样的对象:var myObj = {action1:0, action2:1, action3:2};

测试函数从此列表中获取值作为参数,并为了简化单元测试,我想在函数内部获取人类可读的标签

function myFunc(someaction, anotheraction, blablabla)
{
console.log("Action: " + arguments[0] + " then action: " + arguments[1]);
//some code here
}

所以在函数内部我只能看到像 0 1 2 这样的值

尝试解决方法,我尝试创建这样的新对象

var dictObj = {myObj.action1:"action1", myObj.action2:"action2", myObj.action3:"action3"}

然后将值解析为函数内部的名称:

console.log("Action: " + dictObj[arguments[0]] + " then action: " + dictObj[arguments[1]]);

但是它不起作用,因为

'Uncaught SyntaxError: Unexpected token .'

如何修改此代码以获得可读的描述?

最佳答案

在 ES5 及更早版本中,您必须使用一系列语句创建该对象:

var dictObj = {};
dictObj[myObj.action1] = "action1";
dictObj[myObj.action2] = "action2";
dictObj[myObj.action3] = "action3";

从 ES2015(又名“ES6”)开始,您可以使用对象初始值设定项中的计算属性名称来完成此操作:

let dictObj = {
[myObj.action1]: "action1",
[myObj.action2]: "action2",
[myObj.action3]: "action3"
};

您可以使用[]中的任何表达式来创建属性名称;在本例中,这只是一个简单的属性查找。

请注意,在这两种情况下,都不存在实时关系;如果您将myObj.action1更改为42稍后,执行上述操作后,它不会对dictObj中的属性名称产生任何影响。

关于javascript - 以另一个对象的属性作为键的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38825948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com