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

问题描述 投票:2回答:3

我有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从不打印。我不理解为什么。

javascript node.js web3
3个回答
0
投票

尝试这个:

const obj = {'0': 'data0', '1': 'data1'},
    exist = Object.values(obj).indexOf('data1') > -1;

console.log('exist:', exist);

0
投票

您可以使用underscorejs库它有许多实用的工具,这将帮助你减少你的代码,看一下该库


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

请附样本结构oldvals和交易看怎么样。

© www.soinside.com 2019 - 2024. All rights reserved.