我找到并试用了.includes
来帮助解决这个问题。但是.includes
并没有按照我的意图行事。它确实在JSON中找到了一个与另一个数组中的值匹配的项目,但它只匹配相似的值:
result_postid数组:
[10,22,12,36,45,206]
来自JSON数据的item.id :
[{"id":"5","username":"Mike"},{"id":"13","username":"Tom"},{"id":"28","username":"Jake"},{"id":"136","username":"Josie"},{"id":"400","username":"Bill"},{"id":"538","username":"Sam"}]
我试图找出为什么某些值在true
明确false
时仍然会返回.includes
。然后我得出结论:36
实际上正在从result_postid
获取 136
并将其与 item.id
匹配.includes
。这是我使用{result_postid.includes(item.id) ?
<Text>True</Text>
:
<Text>False</Text>
}
设置if语句的方法:
result_postid | item.id | Result
10 != 5,13,28,136,400,538: False
22 != 5,13,28,136,400,538: False
12 != 5,13,28,136,400,538: False
36 = 5,13,28,136,400,538: True <--- this should be false
45 != 5,13,28,136,400,538: False
206 != 5,13,28,136,400,538: False
结果如下:
{_.intersection(item.id, result_postid) ?
<Text>True</Text>
:
<Text>False</Text>
}
然后我用Lodash尝试了这个尝试:
true
结果全部来自10 = 5,13,28,136,400,538: True
22 = 5,13,28,136,400,538: True
12 = 5,13,28,136,400,538: True
36 = 5,13,28,136,400,538: True
45 = 5,13,28,136,400,538: True
206 = 5,13,28,136,400,538: True
,这是不正确的:
class PathElement():
Children = []
Element = ""
IsStatic = True
ChildrenCount = 0
是否有可能甚至将数组中的值与JSON数据进行比较,并显示一个值是否相等,如果是这样的话?如果不是,假的?
答案 0 :(得分:1)
这里是获得所需结果的一种方法。由于您要将字符串与整数进行比较,因此结果与预期不符。
var data = [{"id":"5","username":"Mike"},{"id":"13","username":"Tom"},{"id":"28","username":"Jake"},{"id":"136","username":"Josie"},{"id":"400","username":"Bill"},{"id":"538","username":"Sam"}]
var arr = [10,22,12,36,45,206]
console.log(data.map(({id}) => arr.includes(+id)))
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
通过执行+id
,您正在将字符串转换为数字,然后再进行下一个操作。