Javascript 需要了解使用关联数组跟踪数组值外观的帮助吗

Javascript 需要了解使用关联数组跟踪数组值外观的帮助吗,javascript,arrays,Javascript,Arrays,代码: 方法=函数(a){ //使用关联数组跟踪值的外观总数 //阵列中 var计数=[]; 对于(var i=0;i 试试这个: function counter(){ this.counts=[]; } counter.prototype.add=function(a){ if(this.counts[a] === undefined) { this.counts[a] = 1; console.log(this.counts); } else { r

代码:

方法=函数(a){
//使用关联数组跟踪值的外观总数
//阵列中
var计数=[];
对于(var i=0;i
试试这个:

function counter(){
this.counts=[];
}

counter.prototype.add=function(a){
  if(this.counts[a] === undefined) {
    this.counts[a] = 1;
    console.log(this.counts);
   } else {
      return true;
    }
   return false;
 }

希望它能帮助你理解发生了什么事情,因为计数[2]将是1,而不是未定义的,它返回true…这是无法解释的,问题是你不理解逻辑…genius!你的例子真的很有帮助。将局部变量更改为此,并且能够看到计数变量中的值。[1:1][1:1,2:1][1:1,2:1,3:1][1:1,2:1,3:1,4:1][1:1,2:1,3:1,4:1,5:1]也帮助我更好地理解了这个关键词谢谢
function counter(){
this.counts=[];
}

counter.prototype.add=function(a){
  if(this.counts[a] === undefined) {
    this.counts[a] = 1;
    console.log(this.counts);
   } else {
      return true;
    }
   return false;
 }
c= new counter();
c.counts;//[]
c.add(1);
c.counts;//[ ,1]
c.add(5);
c.counts;//[ ,1, , , ,1]
c.add(1);//true
...