将PHP代码转换为JavaScript

时间:2018-03-22 01:50:31

标签: javascript php

如何将此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脚本中完成它的问题。我一直在尝试这么多方法但没有成功。

感谢您的帮助。

1 个答案:

答案 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 }))