JavaScript数组的行为与PHP类似?

时间:2011-10-06 16:09:12

标签: php javascript

有没有办法按照PHP中的方式在JavaScript数组中分配值。

例如在PHP中,我可以这样做:

$ar = array();
$ar[] = "Some value";
$ar[] = "Another value";

可以用JavaScript完成吗?或者如果没有相似的方式吗?

3 个答案:

答案 0 :(得分:11)

原始代码的直接翻译是

var ar = [];
ar[ar.length] = "Some value";
ar[ar.length] = "Another value";

然而,更好看的解决方案是使用非常通用的push方法:

var ar = [];
ar.push("Some value");
ar.push("Another value");

答案 1 :(得分:8)

与大多数语言一样,JavaScript具有push的实现,可以将项添加到数组的末尾。

var ar = [];
ar.push("Some value");
ar.push("Another value");

答案 2 :(得分:5)

var myArray = [];
myArray.push('value1');
myArray.push('value1');

或者

var myArray = [];
myArray[myArray.length] = 'value0';
myArray[myArray.length] = 'value1';
myArray[myArray.length] = 'value2';

有关javascript数组的更多信息,请查看此参考文档:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array

在javascript中对数组的处理略有不同。在PHP中,像这样的数组:

PHP

$myArray = array();
$myArray[1] = 'value';
$myArray[10] = 'value';
echo count($myArray); // output: 2

使用Javascript:

var myArray = [];
myArray[1] = 'value';
myArray[10] = 'value';


console.log(myArray.length); // output: 11

这里发生了什么?在PHP中,数组是动态容器。索引不需要是顺序的 - 实际上,关联数组(带有字符串索引而不是数字索引的数组)与标准数组之间几乎没有区别。

在javascript中,“关联数组”的概念在数组上下文中不存在 - 这些将是对象文字({})。 javascript中的数组对象是顺序的。如果您有索引10,则必须在10之前获得索引; 9,8,7等。此顺序列表中未明确赋值的任何值都将使用值undefined填充:

从上面的例子中可以看出:

console.log(myArray); //[undefined, "value", undefined, undefined, undefined, undefined,` undefined, undefined, undefined, undefined, "value"]