如何像在 php 上一样在 node.js 上执行 foreach

How to do foreach on node.js like on php

我有一个看起来像这样的字符串:

  { '19694':
   { ignore_ignore_id: '19694',
     ignore_messages: '1',
     ignore_signatures: '1',
     ignore_topics: '1',
     ignore_chats: '0' },
  '19917':
   { ignore_ignore_id: '19917',
     ignore_messages: '1',
     ignore_signatures: '0',
     ignore_topics: '0',
     ignore_chats: '0' },
  '25895':
   { ignore_ignore_id: '25895',
     ignore_messages: '0',
     ignore_signatures: '0',
     ignore_topics: '0',
     ignore_chats: '1' } }

我只需要其中“ignore_chats”= 1 的 ID,所以我希望得到以下输出:[25895]

我曾在 php 上使用以下代码实现此目的:

$igusers = unserialize($ignored);
  
 foreach($igusers as $key => $value) {
  if($value['ignore_chats'] == 1) {
   $ignoredids .= "[".$value['ignore_ignore_id']."]";
  }
 }

但现在我在 node.js 上,但我无法获得执行此操作的正确代码。我试过这个:

foreach (key, igusers)
      var value, ignoredids; 
      value = igusers[key];
      if(value['ignore_chats'] == 1) {
       ignoredids += "["+value['ignore_ignore_id']+"]";
      }

但我收到很多“意外令牌”错误。我做了一些研究,但未能找到更直接的解决方案。我在这里错过了什么?

谢谢。

你使用了错误的for循环,这样做:

let igusers = {
    '19694':
    {
        ignore_ignore_id: '19694',
        ignore_messages: '1',
        ignore_signatures: '1',
        ignore_topics: '1',
        ignore_chats: '0'
    },
    '19917':
    {
        ignore_ignore_id: '19917',
        ignore_messages: '1',
        ignore_signatures: '0',
        ignore_topics: '0',
        ignore_chats: '0'
    },
    '25895':
    {
        ignore_ignore_id: '25895',
        ignore_messages: '0',
        ignore_signatures: '0',
        ignore_topics: '0',
        ignore_chats: '1'
    }
};

let ignoredids = '';

for (const key in igusers) {
    const value = igusers[key];

    if (value['ignore_chats'] == 1) {
        ignoredids += "[" + value['ignore_ignore_id'] + "]";
    }
}

console.log(ignoredids);
// [25895]

javascript

中的for循环类型很少
  • 经典for循环
  • forof 循环
  • forin 循环
  • foreach 循环

这里有几个例子:


let arrayWithFewMemebrs = ['array m1', 'array m2']
let objectWithFewMembers = {
    'member1': 'object m1',
    'member2': 'object m2'
}

//
// Types of for you can use for an array
//

// Classic for loop
for (let index = 0; index < arrayWithFewMemebrs.length; index++) {
    const arrayMemebrValue = arrayWithFewMemebrs[index];
}

// Forof loop
for (const arrayMemebrValue of arrayWithFewMemebrs) {
    
}

// Foreach loop
arrayWithFewMemebrs.forEach((value, index) => {
    // You cant access to key 
    // but index is accesible
})


//
// Types of for you can use for an object
//

// Forin loop
for (const key in objectWithFewMembers) {
    if (Object.hasOwnProperty.call(object, key)) {
        const objectMemebrValue = object[key];
        
    }
}