我从函数返回一个数组,我想知道我是否也可以同时拥有字符串关联和数字关联。
前:
array[0] = green;
array[1] = blue;
array['what'] = colors;
答案 0 :(得分:0)
在某种程度上是的,因为它是某种类型的对象。但这是错误的使用:)
将对象({}
)用于数字索引的命名(字符串)索引和数组([]
)。
答案 1 :(得分:0)
数组只是具有特殊长度属性的对象和一些方便的inhertited方法。由于数组是对象,因此它们的属性名称是字符串,但是数字方法('0','1','2'等)是由数组方法访问的,而非数字方法(例如长度)则不是。此外,许多数组方法都是通用的,可以应用于具有适当属性的任何对象(即数字长度属性和一些数字属性名称)。
请注意,要将其视为索引,属性名称必须满足rules for index names所以:
var x = [];
x['00'] = '00'; // length = zero as '00' is not an index
x['0'] = '0'; // length = 1 as '0' is an index
使用普通对象可以执行的数组通常被认为是不好的形式,但除了弄乱 length 属性之外没有其他后果。