将php代码转换为JavaScript
如何将此PHP代码转换为JavaScript代码?我不确定将php代码转换为JavaScript,javascript,php,Javascript,Php,如何将此PHP代码转换为JavaScript代码?我不确定array()方法和=>符号 代码如下: $a = $value; for ($i = count($keys)-1; $i>=0; $i--) { $a = array($keys[$i] => $a); } 。这就是我希望用java脚本完成的问题。我尝试了很多方法,但都没有成功 非常感谢您的帮助。这个问题有点奇怪,因为PHP数组更像Javascript中的对象,而不是实际的数组。最大的区别在于语法: 下面是一个与提供
array()
方法和=>
符号
代码如下:
$a = $value;
for ($i = count($keys)-1; $i>=0; $i--) {
$a = array($keys[$i] => $a);
}
。这就是我希望用java脚本完成的问题。我尝试了很多方法,但都没有成功
非常感谢您的帮助。这个问题有点奇怪,因为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 }
}
更实用的方法是使用数组#reduce
:
let a = 4
let keys = ["a", "b", "c"]
let result = keys
.reverse()
.reduce((value, key) => ({ [key]: value }), a)
编辑
更好的方法是使用数组#reduceRight
。这样,您就可以在数组中获得最终值:
let keys = ["a", "b", "c", 4]
let result = keys.reduceRight((v, k) => ({ [k]: v }))
到目前为止,您尝试了什么?您能否提供
$value
和其他相关变量的视觉效果,并给出预期的输出。您了解代码的功能吗?现在,reimplement it.JavaScript为具有命名键(Object
)的集合和具有顺序索引(Array
)的集合提供了单独的类型,而PHP将这两种类型组合到Array()
s中相关:你在PHP中的代码甚至没有意义,因为你在for
循环的每次迭代中都会覆盖$a
。@Mike它将前面的$a
(值或数组)嵌入到下一个中,似乎是从内到外构建一组数组–数组(key0=>数组(key1=>数组(key2=>$value)))
。谢谢你们的回复。我今天也试过了。我试着像(int I=0;I