我在网上发现了一些我不明白的狂野代码:
DECLARE @i INT = 1,
@RevCnt INT = SELECT RevId, COUNT(RevId) FROM MyTable group by RevId
WHILE(@RevCnt >= 50)
BEGIN
UPDATE MyTable
SET RevID= (SELECT COUNT(RevID) FROM MyTable)
WHERE RevID < 50)
@i = @i + 1
END
return Object.assign({}, state, {
[action.subreddit]: posts(state[action.subreddit], action)
})
在做什么?我认为对象键必须是字符串,但这似乎是一个数组?
我希望能够机械地理解这段代码是如何运作的。
谢谢你!答案 0 :(得分:10)
这不是一个数组作为键,它是使用变量(/一个计算属性)作为键的es6方式。 考虑一下:
var a = "foo";
function getKey() {
return "myKey";
}
var obj = {
[a] : "bar",
[getKey()] : "baz"
};
console.log(obj.foo); // bar
console.log(obj.myKey) // baz
所以[action.subreddit]
只是将密钥的名称设置为action.subreddit
所持有的值。