Javascript—每个数组都有';一些';作为一把钥匙?

Javascript—每个数组都有';一些';作为一把钥匙?,javascript,arrays,key,Javascript,Arrays,Key,我在另一篇文章中读到,使用数组中的('thing')来确定数组是否有键 var capitals = []; if(!('California' in capitals)) capitals['California'] = 'Sacramento'; alert("The capital is " + capitals['California']); 使用单词“some”检查键时出现问题,因为它是数组方法: var arr = []; var mykey = 'some'; if(my

我在另一篇文章中读到,使用数组中的('thing')来确定数组是否有键

var capitals = [];
if(!('California' in capitals))
    capitals['California'] = 'Sacramento';
alert("The capital is " + capitals['California']);
使用单词“some”检查键时出现问题,因为它是数组方法:

var arr = [];
var mykey = 'some';
if(mykey in arr)
    alert("the word 'some' is in the array, value: " + arr[mykey]);
警报是:单词“some”在数组中,值:function some(){[native code]}

我没有在“some”键处对数组进行任何设置,但是“in”返回一个正值,因为它是一个方法。鉴于“some”一词在英语中非常常见,如果“some”是一个保留键,我应该如何为英语句子中的单词编制索引


您可以使用空对象进行计数,因为这是一种数组方法

var string='这是一个有一些内容的示例,还有一些单词需要计算',
计数=对象。创建(空);//没有对象原型的真正空对象
string.split(“”).forEach(函数(a){
var key=a.toLowerCase();
计数[键]=(计数[键]| 0)+1;
});

控制台日志(计数)使用或不使用原型的对象(
object.create(null)
),而不是数组。是一种数组方法。
中的
运算符不检查对象中的值,而是检查键。数组的原型中只有整数键和函数,我不是在检查对象中的值,而是在检查某个键是否存在。我可以做arr['California']='Sacramento',然后我可以做if('California'在arr中),它返回true。但是,if(arr中的“some”)也返回true。是我做arr['California']='Sacramento'的前提;已经不是了?