JSON.parse(json_string_from_php)生成奇怪的数组

时间:2015-06-28 10:45:30

标签: javascript php json

我将JSON对象从服务器传输到客户端javascript有点困难

我从存储到$result

的MySQL查询中获取了一行数据

以下是代码:

var json = '<?= json_encode($result->fetch_all()) ?>';
var word_list = JSON.parse(json);
console.log(word_list);     //index.php:23
console.log(json);          //index.php:24

这是chrome控制台的结果: number of arrays in the concise version and expanded version don't match

有人可以告诉我:
1.为什么第23行在折叠时显示5的长度,然后在展开时仅显示4的长度? 2. word5去了哪里?仅供参考,每次刷新时,消失的单词都会发生变化。

2 个答案:

答案 0 :(得分:4)

我可以重现您的屏幕截图。

screenshot

我故意在小“i”上盘旋,露出它的工具提示。它声明“下面的对象状态是在第一次扩展时捕获的。

这意味着如果您打印数组,请不要展开它,修改数组(例如使用pop()),然后在展开它时,您将看到已修改的数组。

演示: JSBin

答案 1 :(得分:1)

console.log在访问console.log时将对象的状态记录到控制台,同时检查数组(或任何对象)显示它的当前状态。

var a = [1,2,3,4,5].map(function(){ return new String(); });
console.log(a);
a.pop();

enter image description here