检查字符串是否存在于数组JavaScript中

时间:2018-06-21 14:58:04

标签: javascript node.js web3

我有一个声明为values的数组,如下所示:

var values = Object.keys(oldvals).map(function(key) {
    return oldvals[key];
});

这是values的内容:

{ '0': '0x3dedc2e13c8d8f944c9c6b99c414d67f62e1a2be' }

接下来,我正在执行以下代码:

block.transactions.forEach( function(e) {
   console.log(e.to);

   if (values.indexOf(e.to) > -1) {
       console.log("FOUND")
   }

});

现在e.to日志将打印以下内容:

0x3dedc2e13c8d8f944c9c6b99c414d67f62e1a2be
0x3dedc2e13c8d8f944c9c6b99c414d67f62e1a2be
0x3dedc2e13c8d8f944c9c6b99c414d67f62e1a2be
0x3dedc2e13c8d8f944c9c6b99c414d67f62e1a2be
0x3dedc2e13c8d8f944c9c6b99c414d67f62e1a2be
0x3dedc2e13c8d8f944c9c6b99c414d67f62e1a2be
0x3dedc2e13c8d8f944c9c6b99c414d67f62e1a2be
0x3dedc2e13c8d8f944c9c6b99c414d67f62e1a2be
0x3dedc2e13c8d8f944c9c6b99c414d67f62e1a2be
0x88c1ffdcb9d631ef66eec30e706c1baaa415d22c
0x014f34c3f7858c2a5171bc307922a823b658d7bd
0x014f34c3f7858c2a5171bc307922a823b658d7bd
0x014f34c3f7858c2a5171bc307922a823b658d7bd
0x014f34c3f7858c2a5171bc307922a823b658d7bd
0x014f34c3f7858c2a5171bc307922a823b658d7bd
0x014f34c3f7858c2a5171bc307922a823b658d7bd
0x014f34c3f7858c2a5171bc307922a823b658d7bd
0x014f34c3f7858c2a5171bc307922a823b658d7bd
0x014f34c3f7858c2a5171bc307922a823b658d7bd

清楚表明我正在搜索的地址存在于values中,但是,从未打印过FOUND。我不懂为什么。

3 个答案:

答案 0 :(得分:0)

尝试一下:

filter

答案 1 :(得分:0)

您可以使用underscorejs库,它具有许多实用工具,可帮助您减少代码 看看那个图书馆

答案 2 :(得分:0)

var oldvals =[{ '0': 0x3dedc2e13c8d8f944c9c6b99c414d67f62e1a2be }];

var transactions =[{'to':'0x3dedc2e13c8d8f944c9c6b99c414d67f62e1a2be'},
{'to':'0x3dedc2e13c8d8f944c9c6b99c414d67f62e1a2b1'}, 
{'to':'0x3dedc2e13c8d8f944c9c6b99c414d67f62e1a2b2'},];


transactions.forEach( function(e) {
   console.log(e.to);

if (values.indexOf(e.to) > -1) {
   console.log("FOUND")
   }

});

output result...

0x3dedc2e13c8d8f944c9c6b99c414d67f62e1a2be
FOUND
0x3dedc2e13c8d8f944c9c6b99c414d67f62e1a2b1
0x3dedc2e13c8d8f944c9c6b99c414d67f62e1a2b2

请附上示例结构,以了解旧时和交易的样子。