警告Javascript数组对象显示为空
Alerting Javascript array object shows empty
我正试图将JavaScript
数组发送到我的php
,但php
变为空[]
它甚至在我的浏览器中显示为那样。我一直发送JSON
,没有问题,但现在有了这种格式。
我有一个毫无意义的例子。。。这只是一个说明问题的代码:
var blah = [];
var letters = ['a', 'b', 'c', 'd'];
for (var i = 0; i < letters.length; i++)
{
blah[letters[i]] = i;
}
firebug DOM
内部显示如下:
blah []
a 0
b 1
c 2
d 3
当我做时
alert(blah)
------------------------------我变空了alert(JSON.stringify(blah))
-----我得到[]alert(blah.a)
-------------------------我得到0
那么,我如何将这个对象传递给php
呢?感谢
尝试使用对象而不是数组。
所以不是:
var blah = [];
尝试
var blah = {};
数组是连续的数字索引。它们没有字符串作为键名
您想要的是对象{}
,而不是数组[]
。
无法在数组中分配键值集合。你需要处理对象:
var obj = {
key1: value1,
key2: value2
};
用于将数组转换为字符串,可以使用:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.toString();
带分离器:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join(" and ");
这是工作演示
试试这个:
var blah = {};
var letters = ['a', 'b', 'c', 'd'];
for (var i = 0; i < letters.length; i++)
{
blah[letters[i]] = i;
}
alert(JSON.stringify(blah));
我以前已经回答过这个问题。无论如何,blah
是一个数组,但您并没有将其用作数组,而是将其用作哈希映射。数组使用索引,映射使用键。JS中的任何对象也可以像地图一样工作。例如
var obj = new Object();
obj.a = 10;
obj["b"] = 20;
var obj2 = function(){...}
obj2.foo = 10;
obj2.bar = "baz";
类似地,Array
也是和Object
,并且可以像地图一样起作用。但是,当您像使用映射一样使用数组时,它的数组不会用于存储元素。他们只是像上面那样行事。所以数组的length
是0,即使它有附加属性
您必须使用像push
和pop
这样的Array方法来填充并从中检索。
相关文章:
- 在javascript中添加和显示对象的随机数组中的视频
- 如何使用for in循环在javascript中显示对象中的对象
- 如何移动PIXI显示对象
- 在鼠标悬停时显示对象的边框(Fabricjs)
- 使用jquery在不同的表中显示对象的元素
- 剑道角's自动完成在结果中显示对象
- ExtJS显示对象属性
- 在 angularjs 的数组中显示 x 对象
- JQuery UI 自动完成在滚动菜单时在文本框中显示 [对象对象]
- JSON对象在控制台中显示对象,但也包含来自php脚本返回的字符串的“未定义”
- 如果属性不存在,则不显示对象的数据
- 挖空 JS为每个绑定显示 [对象对象]
- 翡翠 - 显示对象属性 - 未定义
- 单击超链接后在同一页面中显示对象
- 渲染场景时不显示对象
- 它在文本区域中显示“[对象][对象]”
- Angularjs.在 http.get 之后显示对象属性
- 如何在嵌套级别不受限制的情况下显示对象的动态嵌套子数组对象
- 如何在IE9上显示对象的内容
- JavaScript 警报函数不会显示对象