js-*_*der 24 javascript php arrays
是否有像PHP中那样声明关联数组的简短方法?
$myArray = array('a' => 'b'); // PHP Way
Run Code Online (Sandbox Code Playgroud)
在JavaScript中我会这样做:
var myArray = [];
myArray['a'] = 'b';
Run Code Online (Sandbox Code Playgroud)
我不是在寻找JavaScript对象.
Kar*_*oll 26
声明一个这样的对象:
var myArray = {"a": "b", "c": "d"};
Run Code Online (Sandbox Code Playgroud)
...然后像这样引用每个项目:
var somethingElse = myArray["a"]; //Sets "somethingElse" to "b".
Run Code Online (Sandbox Code Playgroud)
正如@Chris和@Marc在评论中提到的:在JavaScript中,对象是关联数组,反之亦然,它们只是指两种不同的方式来做同样的事情.例如...
var somethingElse = myArray["a"];
var anotherVariable = myArray.a;
Run Code Online (Sandbox Code Playgroud)
... 做同样的事.
Álv*_*lez 26
JavaScript没有关联数组.在您的示例中,您将声明myArray为数组,然后为其分配对象.所以你的代码与此没有什么不同:
var myObject = {};
myObject['a'] = 'b';
Run Code Online (Sandbox Code Playgroud)
更新:稍作修正.实际上,原始代码不会破坏数组.它只是附加一个常规属性.这是可能的,因为JavaScript数组是JavaScript对象的子集.
我不是在寻找JavaScript对象.
JavaScript中没有"关联数组",只有由属性名称和值组成的对象可以这样处理.所以,你所寻找的实际上是对象.实际上,您的问题中的这个示例是使用对象:
var myArray = [];
myArray['a'] = 'b';
alert(typeof myArray); // 'object'
Run Code Online (Sandbox Code Playgroud)
您最初使用数组文字语法构造对象:
var myArray = [];
Run Code Online (Sandbox Code Playgroud)
这意味着你创建了一个继承自的对象Array.prototype.基本上,你正在处理一个已经使用存储的方法进行扩充的对象Array.prototype.
要检查它myArray实际上是一个数组(好吧,我会说JavaScript数组是伪数组),你可以检查它的构造函数:
alert(typeof myArray === 'object' && myArray.constructor === Array);
Run Code Online (Sandbox Code Playgroud)
还有一种更好的方法可以识别在不同窗口和框架中构建的数组:
alert(Object.prototype.toString.apply(myArray) === '[object Array]');
Run Code Online (Sandbox Code Playgroud)
您还可以使用instanceOf:
alert(myArray instanceof Array);
Run Code Online (Sandbox Code Playgroud)
或者Array.isArray:
alert(Array.isArray(myArray));
Run Code Online (Sandbox Code Playgroud)
在 javascript 中,关联数组、键控集合、散列……无论您想怎么称呼它们,都不是特殊类型。以下都是好的。
a = {}
a[3] = 15
a.b = "c"
a['def'] = 'something'
Run Code Online (Sandbox Code Playgroud)
此代码生成具有您期望的属性的单个有效对象。他们都。您可以在一个对象中组合传统索引数组和关联数组。
至于一次声明一大堆,通常的语法是:
a = {
'key1' : 'val1',
'key2' : val2,
key3 : val3,
key4 : "val4"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34471 次 |
| 最近记录: |