#javascript
#javascript
Вопрос:
Я недавно работаю с Postman над созданием некоторых тестов.
Большинство get
ответов состоят из больших массивов с множеством объектов в них (я просто оставил два свойства для удобства чтения, объекты имеют более 20 свойств).
У меня есть скрипт, который считывает весь ответ для получения правильных данных, а затем возвращает результат.
Как я могу остановить скрипт на определенном количестве объектов?
[
{
"username": "",
"active": ""
},
{
"username": "",
"active": ""
}
]
Комментарии:
1.
if (numberOfObjects >= expectedNumber) { return someValue; }
Ответ №1:
Может быть, это поможет вам (я не знаю, хорошо ли я понял).
Но с помощью filter
вы можете получить значения с одним свойством (вы можете сопоставить все, что хотите), а с помощью slice
вы получите первые N значений.
Таким образом, вам не нужно перебирать весь список, и вы можете проверять только эти значения.
Кроме того, если вам нужно только количество элементов, соответствующих условию, нужно использовать только filter
и длина.
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)
Комментарии:
1. Отличная работа, большое вам спасибо! Вся идея мне очень помогла, спасибо!
2. Добро пожаловать! Если ваша проблема была решена, отметьте ответ как принятый, приветствуется
Ответ №2:
Посмотрите, поможет ли приведенный ниже код
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();
Комментарии:
1.Отличная работа, большое вам спасибо! Вся идея мне очень помогла, спасибо!