我是 JavaScript 的初学者,我正在尝试不 Object.keys()
或任何正则表达式来解决这个问题。我有一个可行的解决方案,但我想知道是否有更好的方法在仍在循环的同时调用数组中的对象键。如果有人有办法做到这一点,那是基本的,请告诉我。
问题: 创建一个名为 keyCount 的函数,它接受两个参数,一个对象数组和一个字符串。该函数应返回一个数字,该数字表示该键在对象数组中出现的次数。
预期结果:
countTimesOfKey([{name:"Sharon"}, {name: "Manish"},{lastName: "Terma"}], "name"))//2
我的答案:
function countTimesOfKey(arr, str) {
let count = 0
for (let i in arr){
let test = arr[i]
let test2 = test[str]
if (test2 !== undefined){
count += 1
}
}
return count
}
最佳答案
您可以使用 Array.filter
过滤掉数组中具有 str
作为属性的项目(通过使用 Object.hasOwnProperty
),然后返回结果数组的长度:
function countTimesOfKey(arr, str) {
return arr.filter(e => e.hasOwnProperty(str)).length;
}
console.log(countTimesOfKey([{
name: "Sharon"
}, {
name: "Manish"
}, {
lastName: "Terma"
}], "name"))
关于javascript - 如何在没有 Object.keys() 的情况下遍历对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69035968/