Arrays 如何确定JSON数据中的一个项是否等于数组中的一个值?
我已找到并试用了Arrays 如何确定JSON数据中的一个项是否等于数组中的一个值?,arrays,json,if-statement,react-native,lodash,Arrays,Json,If Statement,React Native,Lodash,我已找到并试用了.includes,以帮助解决此问题。但是.includes没有按我的预期工作。它实际上在JSON中找到了一个与另一个数组中的值匹配的项,但它只匹配了类似的值: [10,22,12,36,45,206] [{"id":"5","username":"Mike"},{"id":"13","username":"Tom"},{"id":"28","username":"Jake"},{"id":"136","username":"Josie"},{"id":"400","usern
.includes
,以帮助解决此问题。但是.includes
没有按我的预期工作。它实际上在JSON中找到了一个与另一个数组中的值匹配的项,但它只匹配了类似的值:
[10,22,12,36,45,206]
[{"id":"5","username":"Mike"},{"id":"13","username":"Tom"},{"id":"28","username":"Jake"},{"id":"136","username":"Josie"},{"id":"400","username":"Bill"},{"id":"538","username":"Sam"}]
结果\u posted数组:
[10,22,12,36,45,206]
[{"id":"5","username":"Mike"},{"id":"13","username":"Tom"},{"id":"28","username":"Jake"},{"id":"136","username":"Josie"},{"id":"400","username":"Bill"},{"id":"538","username":"Sam"}]
JSON数据中的item.id:
[10,22,12,36,45,206]
[{"id":"5","username":"Mike"},{"id":"13","username":"Tom"},{"id":"28","username":"Jake"},{"id":"136","username":"Josie"},{"id":"400","username":"Bill"},{"id":"538","username":"Sam"}]
我试图弄明白为什么有些值在应该是明显的false
时仍返回true
。然后我得出结论,.includes
实际上是从结果posted
中提取36
,并将其与项目id中的136
匹配。这就是我如何使用设置if语句的方法。includes
:
{result_postid.includes(item.id) ?
<Text>True</Text>
:
<Text>False</Text>
}
甚至可以将数组中的值与JSON数据进行比较,并显示一个值是否相等(如果是真的话)?如果不是,错 以下是一种获得您想要的结果的方法。由于您正在将字符串与整数进行比较,因此结果与预期不符
var data=[{“id”:“5”,“用户名”:“Mike”},{“id”:“13”,“用户名”:“Tom”},{“id”:“28”,“用户名”:“Jake”},{“id”:“136”,“用户名”:“Josie”},{“id”:“400”,“用户名”:“Bill”},{“id”:“538”,“用户名”:“Sam”}]
var arr=[10,22,12,36,45206]
console.log(data.map({id})=>arr.includes(+id))
您是否在项目上循环?您能否提供一个显示此行为的工作代码段(Ctrl+M)?这里的一个问题是ID是String
s,数组中的值是Number
s,但无论哪种方式,它都会为每个项目生成false
。是的,我正在循环项目。我是用交叉点猜的
如果其中一项为真,那么它会将所有内容标记为真@DamonIt如果你提供你正在使用的循环,那会很有帮助,也许那里有一个错误。@Damon我的意思是,我甚至不确定它是否是循环。我正在从数据库中提取数据。起初,results\u postid
也是json数据,但后来我使用了:const result\u postid=this.state.data\u one.map(函数(val){return val.postid;}).join(',')代码>仅拉取post id。我应该对其他JSON数据做同样的处理吗?如果您join
将其转换为逗号分隔的字符串,这可能就是您得到误报的原因。