2 回答
TA贡献1820条经验 获得超10个赞
也许这对你有帮助(我不知道我是否理解得很好)。
但是使用filter您可以获取具有一个属性的值(您可以匹配您想要的任何内容)并且使用slice您将获得前 N 个值。
因此,您不必迭代整个列表,而可以仅检查这些值。
另外,如果您只想要匹配某个条件的元素数量,则只需要使用filter和 length 。
var array = [
{
"username": "1",
"active": true
},
{
"username": "2",
"active": false
},
{
"username": "3",
"active": true
}
]
var total = 1 // total documents you want
var newArray = array.filter(e => e.active).slice(0, total);
console.log(newArray)
//To know the length of elements that match the condition:
var length = array.filter(e => e.active).length
console.log(length)
TA贡献1828条经验 获得超3个赞
看看下面的代码是否有帮助
function processLongArray() {
var myLongArray = [{
"username": "active"
}, {
"username": "active"
}, {
"username": "inactive"
}]; // and many more elements in the array
var count = 0;
var targetCount = 1; // stop after this number of objects
for (var i = 0; i < myLongArray.length; i++) {
var arrayItem = myLongArray[i];
// condition to test if the arrayItem is considered in count
// If no condition needed, we can directly increment the count
if (arrayItem.username === "active") {
count++;
}
if (count >= targetCount) {
console.log("OK we are done! @ " + count);
return count; // or any other desired value
}
}
}
processLongArray();
添加回答
举报