思路:利用对象的key值具有唯一性,先计算出每个元素出现的个数为对象1,再利用对象1中的键值组成新的对象2,比较两个对象中键值名数组的长度得出结果。
/**
* @param {number[]} arr
* @return {boolean}
*/
var uniqueOccurrences = function(arr) {
if(arr === null) return true;
let obj = {}, obj2 = {};
for(let i=0;i<arr.length;i++){
if(obj[arr[i]]){
obj[arr[i]]++;
} else {
obj[arr[i]] = 1;
}
}
Object.values(obj).map(item => {
obj2[item] = item;
})
return Object.keys(obj).length === Object.keys(obj2).length;
};
网友评论