例如,如果我做[1000000] = 1; 它会使用1000000个元素的内存还是只用于这个?
我一直在玩javascript数组,我遇到了,我觉得,有些不一致,我希望有人可以为我解释.
让我们从这开始:
var myArray = [1, 2, 3, 4, 5];
document.write("Length: " + myArray.length + "<br />");
for( var i in myArray){
document.write( "myArray[" + i + "] = " + myArray[i] + "<br />");
}
document.write(myArray.join(", ") + "<br /><br />");
Run Code Online (Sandbox Code Playgroud)
Length: 5 myArray[0] = 1 myArray[1] = 2 myArray[2] = 3 myArray[3] = 4 myArray[4] = 5 1, 2, 3, 4, 5
这段代码没有什么特别之处,但我知道javascript数组是一个对象,因此可能会向数组添加特性,这些特性添加到数组的方式似乎与我不一致.
在继续之前,让我注意如何在javascript中将字符串值转换为数字值.
非空字符串 - >字符串或NaN的数字值
空字符串 - > 0
因此,由于javascript数组是一个对象,以下是合法的:
myArray["someThing"] = "someThing";
myArray[""] = "Empty …Run Code Online (Sandbox Code Playgroud) 我不知道你怎么样,但我不太喜欢用PHP构建数组的方式.我有这样的感觉,我array经常使用关键字方式,并且考虑到地图的有用性,array($k => $v)或者例如array($k1=>array($k2=>$v))太长.(而且,最近我学会了JS的做法,现在我真的很嫉妒)
我能想出的最好的解决方法是:
function a() { // array
return func_get_args();
}
Run Code Online (Sandbox Code Playgroud)
和
function h() { // hash
$array=array();
for($i=0; $i<func_num_args()-1; $i+=2) {
$array[func_get_arg($i)]=func_get_arg($i+1);
}
return $array;
}
Run Code Online (Sandbox Code Playgroud)
......但他们不允许使用=>操作员.
还有其他想法吗?