我在 php 和 javascript 中有两个版本的相同代码块。它们的输出略有不同。 Javascript 输出中有两个“未定义”元素。我知道 Javascript 数组索引是从 0 开始递增的,并且不允许我们跳过任何索引号。
有没有办法解决这个问题,使 Javascript 数组输出看起来像 Php 数组输出?
PHP代码:
$n = array();
$n[0] = 'Apple';
$n[3] = 'Apple';
echo "<pre>";
print_r( $n );
echo "</pre>";
输出:
Array
(
[0] => Apple
[3] => Apple
)
Javascript 代码:
var n = new Array();
n[0] = 'Apple';
n[3] = 'Apple';
n;
输出:
[
"Apple",
undefined,
undefined,
"Apple"
]
谢谢!!
最佳答案
正如您提到的 JavaScript Arrays有索引限制。
获得所需输出的最接近方法是使用 JavaScript Object .
如果您随后使用 JavaScript JSON stringify要将对象转换为格式良好的文本,您将毫不费力地获得几乎相同的输出。
您可以编写额外的 JavaScript 以使输出完全反射(reflect) PHP 输出。但我会把它留给你。
var n = new Object();
n[0] = 'Apple';
n[3] = 'Apple';
var output = JSON.stringify(n, null, 2);
// Output to a pre tag like the PHP example you gave.
document.getElementById("output").innerHTML = output;
// Simple output to the console.
console.log(output);
<pre id="output"></pre>
关于Javascript 数组与 Php 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32110347/