计算数组中每个元素出现的次数

计算数组中每个元素出现的次数

var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];

var countedNames = names.reduce(function (allNames, name) { 
  if (name in allNames) {
    allNames[name]++;
  }
  else {
    allNames[name] = 1;
  }
  return allNames;
}, {});
// countedNames is:
// { 'Alice': 2, 'Bob': 1, 'Tiff': 1, 'Bruce': 1 }
// 如果我们要检测对象是否拥有某一属性,可以用in操作符
var obj= {
    name: '类老师',
    age: 18,
    school: '家具'  
};
console.log('age' in obj); // true
console.log('grade' in obj); // false
// 因为toString定义在object对象中,而所有对象最终都会在原型链上指向object,所以obj也拥有toString属性。
// 要判断一个属性是否是obj自身拥有的,而不是继承得到的,可以用hasOwnProperty()[has er en po per t]方法:
var obj= {    
    name: '陈三',    
    age: 18,    
    school: '宇宙银河系'  
};
obj.hasOwnProperty('name'); // true
obj.hasOwnProperty('toString'); // false

你可能感兴趣的:(计算数组中每个元素出现的次数)