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

检查数组JavaScript中是否存在字符串,javascript,node.js,web3,Javascript,Node.js,Web3,我有一个数组值声明如下: var values = Object.keys(oldvals).map(function(key) { return oldvals[key]; }); 这是值的内容: { '0': '0x3dedc2e13c8d8f944c9c6b99c414d67f62e1a2be' } 接下来,我将执行以下代码: block.transactions.forEach( function(e) { console.log(e.to); if (valu

我有一个数组
声明如下:

var values = Object.keys(oldvals).map(function(key) {
    return oldvals[key];
});
这是
值的内容

{ '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
清楚地显示我正在搜索的地址存在于
值中,但是,
找到的
从未打印。我不明白为什么

试试这个:

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

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

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

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

请附上一个旧VAL和交易的示例结构

你在结果索引中看到了什么
console.log(values.indexOf(e.to))
console.log(oldvals[key])返回之前,它会为所有内容打印-1。并手动检查。你可能有一个想法。我不能使用值,因为它说它不可定义编辑不显示在你的模板上。我认为
block.transactions.forEach(…)
在声明
var值=/**/之前,是吗?