仅提取数组中的多个对象

我刚刚与 Postman 合作创建一些测试。


大多数get响应由大块数组组成,其中包含大量对象(为了便于阅读,我只留下了两个属性,这些对象有 20 多个属性)。


我有一个脚本可以读取整个响应以获取正确的数据,然后返回结果。


如何在达到一定数量的对象时停止脚本?


[

   {

      "username": "",

      "active": ""

   },

   {

      "username": "",

      "active": ""

   }

]


牛魔王的故事
浏览 120回答 2
2回答

拉莫斯之舞

也许这对你有帮助(我不知道我是否理解得很好)。但是使用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 wantvar 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).lengthconsole.log(length)

倚天杖

看看下面的代码是否有帮助function processLongArray() {&nbsp; var myLongArray = [{&nbsp; &nbsp; "username": "active"&nbsp; }, {&nbsp; &nbsp; "username": "active"&nbsp; }, {&nbsp; &nbsp; "username": "inactive"&nbsp; }]; // and many more elements in the array&nbsp; var count = 0;&nbsp; var targetCount = 1; // stop after this number of objects&nbsp; for (var i = 0; i < myLongArray.length; i++) {&nbsp; &nbsp; var arrayItem = myLongArray[i];&nbsp; &nbsp; // condition to test if the arrayItem is considered in count&nbsp; &nbsp; // If no condition needed, we can directly increment the count&nbsp; &nbsp; if (arrayItem.username === "active") {&nbsp; &nbsp; &nbsp; count++;&nbsp; &nbsp; }&nbsp; &nbsp; if (count >= targetCount) {&nbsp; &nbsp; &nbsp; console.log("OK we are done! @ " + count);&nbsp; &nbsp; &nbsp; return count; // or any other desired value&nbsp; &nbsp; }&nbsp; }}processLongArray();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript