Php 警报Javascript数组对象显示为空
我试图将Php 警报Javascript数组对象显示为空,php,javascript,arrays,Php,Javascript,Arrays,我试图将JavaScript数组发送到我的php,但是php变为空[] 它甚至在我的浏览器中显示为这样。我一直发送JSON,没有问题,但现在有了这种格式 我有一个毫无意义的例子……它只是一个说明问题的代码: var blah = []; var letters = ['a', 'b', 'c', 'd']; for (var i = 0; i < letters.length; i++) { blah[letters[i]] = i; } 当我这样做的时候 警报(废话)-
JavaScript
数组发送到我的php
,但是php
变为空[]它甚至在我的浏览器中显示为这样。我一直发送
JSON
,没有问题,但现在有了这种格式
我有一个毫无意义的例子……它只是一个说明问题的代码:
var blah = [];
var letters = ['a', 'b', 'c', 'd'];
for (var i = 0; i < letters.length; i++)
{
blah[letters[i]] = i;
}
当我这样做的时候
警报(废话)
------------------------------------我得到空警报(JSON.stringify(blah))
----我得到[]警报(blah.a)
-----------------------------我得到0那么我如何将这个对象传递给
php
?谢谢请尝试使用对象,而不是数组
因此,不是:
var blah = [];
试一试
数组是连续的数字索引。它们没有字符串作为键名。
你想要的是一个对象,而不是数组,我以前已经回答过了。无论如何,
blah
是一个数组,但您不是将其用作数组,而是将其用作哈希映射。数组使用索引,映射使用键。JS中的任何对象也可以像地图一样工作。例如
var obj = new Object();
obj.a = 10;
obj["b"] = 20;
var obj2 = function(){...}
obj2.foo = 10;
obj2.bar = "baz";
类似地,数组
也是和对象
,可以像地图一样工作。但是,当您像使用贴图一样使用数组时,它的数组不会用于存储元素。他们的行为就像上面所说的。因此,数组的长度
为0,即使它附加了属性
您必须使用数组方法,如
push
和pop
来填充并从中检索。无法在数组中分配键值集合。您需要处理对象:
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));
var blah={};
变量字母=['a','b','c','d'];
对于(变量i=0;i
该示例仅用于说明,请从我的答案中删除该示例。问题是,当您应该使用对象时,您正在使用数组。但是,如果我的键是一个变量,那么我应该如何分配?像这样的结果[key]=value
?感谢您的回答和努力rossipedia
先回答,所以我会接受他的回答。感激
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));