循环并检查两个数组总是只返回一个元素

米格尔·弗里亚斯

我有两个数组,一个是字符串数组,另一个是['security', 'hobbies']对象数组[{name: 'randome', category: 'hobbies'}, {name: 'randome', category: 'randome'}, {name: 'randome', category: 'randome'}, {name: 'randome', category: 'security'}],我试图循环这两个数组和splice所有那些与第一个数组上的类别不匹配但总是只得到的对象循环中的一个元素。

for (let i = 0; i < searchparam.category.length; i++) {
        for (let j = 0; j < validapps.length; j++) {
          let match: boolean = false;
          if (validapps[j].category === searchparam.category[i]) {
            console.log(validapps[j])
            match = true;
            return;
          }
          if (!match) {
            validapps.splice(j, 1);
            j--;
          }
        }
 }

循环后我应该得到 2 个或更多元素,但总是只得到一个。结果数据总是一个元素。

_id: "598c69259fe2ff5fd0432396"
active: true
app_language: Array [ "DE" ]
application_code: "ASF"
blacklist: Array []
category: "utilities"
comments: ""
contacts: Array [ "598c40cf0f05ba5d0c5da01a", "598c66d59fe2ff5fd043238a", "59ce05683d7daf37702c1fc1", … ]
id: "598c69259fe2ff5fd0432396"
image: ""
insertDate: "2017-08-10T14:09:41.189Z"
name: "Alpha SSD Fresh"
os: Array [ {…} ]
updateDate: "2017-08-10T14:09:41.608Z"
gurvinder372

或者你可以使用 filter

var arr = [{name: 'randome', category: 'hobbies'}, {name: 'randome', category: 'randome'}, {name: 'randome', category: 'randome'}, {name: 'randome', category: 'security'}];
var validItems = ['security', 'hobbies'];
arr = arr.filter( s => validItems.indexOf( s.category ) != -1 ); //only those items will be passed through which have valid categories

或者

arr = arr.filter( s => validItems.includes( s.category ) ); //only those items will be passed through which have valid categories

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在一个foreach循环中检查两个数组?

来自分类Dev

嵌套循环:最后一个循环总是返回最后一个数组对象

来自分类Dev

jQuery检查两个数组是否至少有一个公共元素

来自分类Dev

比较两个数组并返回一个数组以显示哪些元素相等或不相等

来自分类Dev

当在Javascript中重复两个元素时,如何循环创建另一个数组?

来自分类Dev

我的循环只检查第一个数组项

来自分类Dev

我的循环只检查第一个数组项

来自分类Dev

将两个数组匹配为一个数组。不通过 for 循环

来自分类Dev

使用jQuery“ extend”连接两个数组将返回一个数组

来自分类Dev

嘶嘶声只返回一个元素,而选择器匹配两个

来自分类Dev

从一个大数组填充一个数组,一次两个元素

来自分类Dev

检查php中两个或多个数组中是否存在一个值

来自分类Dev

检查一个值是否存在于两个或多个数组中

来自分类Dev

将 3 个不同数组的所有值转换为它们的绝对值并返回所有 3 个值的方法只保留第一个数组而不是接下来的两个数组

来自分类Dev

在一个单独的数组中显示两个数组的相同元素

来自分类Dev

使用两个数组中的公共元素创建一个新数组

来自分类Dev

在一个数组列表中找到两个网络元素

来自分类Dev

如何将两个数组元素(int)附加到一个数组元素(int)中?

来自分类Dev

php - 如何将最后两个数组元素合并为一个数组元素

来自分类Dev

如何在JavaScript中为两个数组的每个循环使用一个?

来自分类Dev

如何在导轨中仅使用一个for循环同时遍历两个数组

来自分类Dev

以正确的位置在一个循环项中显示每两个数组项

来自分类Dev

比较两个数组 - 一个数组的元素必须全部在另一个数组中

来自分类Dev

总是返回数组中的最后一个元素

来自分类Dev

从两个数组创建一个多维数组

来自分类Dev

循环两个数组,第一个数组中没有重复的值

来自分类Dev

基于一个列元素对两个数组进行排序和合并

来自分类Dev

两个数组对一个对象的元素引用

来自分类Dev

是否有一个numpy样式将两个数组元素相乘?

Related 相关文章

  1. 1

    如何在一个foreach循环中检查两个数组?

  2. 2

    嵌套循环:最后一个循环总是返回最后一个数组对象

  3. 3

    jQuery检查两个数组是否至少有一个公共元素

  4. 4

    比较两个数组并返回一个数组以显示哪些元素相等或不相等

  5. 5

    当在Javascript中重复两个元素时,如何循环创建另一个数组?

  6. 6

    我的循环只检查第一个数组项

  7. 7

    我的循环只检查第一个数组项

  8. 8

    将两个数组匹配为一个数组。不通过 for 循环

  9. 9

    使用jQuery“ extend”连接两个数组将返回一个数组

  10. 10

    嘶嘶声只返回一个元素,而选择器匹配两个

  11. 11

    从一个大数组填充一个数组,一次两个元素

  12. 12

    检查php中两个或多个数组中是否存在一个值

  13. 13

    检查一个值是否存在于两个或多个数组中

  14. 14

    将 3 个不同数组的所有值转换为它们的绝对值并返回所有 3 个值的方法只保留第一个数组而不是接下来的两个数组

  15. 15

    在一个单独的数组中显示两个数组的相同元素

  16. 16

    使用两个数组中的公共元素创建一个新数组

  17. 17

    在一个数组列表中找到两个网络元素

  18. 18

    如何将两个数组元素(int)附加到一个数组元素(int)中?

  19. 19

    php - 如何将最后两个数组元素合并为一个数组元素

  20. 20

    如何在JavaScript中为两个数组的每个循环使用一个?

  21. 21

    如何在导轨中仅使用一个for循环同时遍历两个数组

  22. 22

    以正确的位置在一个循环项中显示每两个数组项

  23. 23

    比较两个数组 - 一个数组的元素必须全部在另一个数组中

  24. 24

    总是返回数组中的最后一个元素

  25. 25

    从两个数组创建一个多维数组

  26. 26

    循环两个数组,第一个数组中没有重复的值

  27. 27

    基于一个列元素对两个数组进行排序和合并

  28. 28

    两个数组对一个对象的元素引用

  29. 29

    是否有一个numpy样式将两个数组元素相乘?

热门标签

归档