有没有办法按照PHP中的方式在JavaScript数组中分配值。
例如在PHP中,我可以这样做:
$ar = array();
$ar[] = "Some value";
$ar[] = "Another value";
可以用JavaScript完成吗?或者如果没有相似的方式吗?
答案 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"]