如何将此PHP代码转换为JavaScript代码?我不确定array()
方法和=>
符号。
以下是代码:
$a = $value;
for ($i = count($keys)-1; $i>=0; $i--) {
$a = array($keys[$i] => $a);
}
Create nested array by array of keys。这是我希望在java脚本中完成它的问题。我一直在尝试这么多方法但没有成功。
感谢您的帮助。
答案 0 :(得分:1)
这个问题有点奇怪,因为PHP数组更像是Javascript中的对象,而不是实际的数组。最大的区别是语法:
以下是与提供的示例匹配的解决方案:
let a = 4
let keys = ["a", "b", "c"]
// Same as the PHP code, loop backwards
for(let i = keys.length - 1; i >= 0; i--) {
let key = keys[i]
// Create a new object with the key and the old a as the value.
a = { [key]: a }
}
更实用的方法是使用Array#reduce
:
let a = 4
let keys = ["a", "b", "c"]
let result = keys
.reverse()
.reduce((value, key) => ({ [key]: value }), a)
修改
稍微好一点的方法是使用Array#reduceRight
。这将让您在数组中获得最终值:
let keys = ["a", "b", "c", 4]
let result = keys.reduceRight((v, k) => ({ [k]: v }))