Javascript 如何按文本比较嵌套对象
我在嵌套对象中有一个对象。我想检测对象名是否存在,获取该对象的文本值 我试着在元素内部通过for循环。但我只能走一步Javascript 如何按文本比较嵌套对象,javascript,jquery,object,Javascript,Jquery,Object,我在嵌套对象中有一个对象。我想检测对象名是否存在,获取该对象的文本值 我试着在元素内部通过for循环。但我只能走一步 var data = [ { "option1": "selectedoption1" }, { "option2": "selectedoption2" }, { "option2": "selectedoption3" }, { "option2": "selectedoption4" } ] var selectedOption = jQuery("
var data = [
{ "option1": "selectedoption1" },
{ "option2": "selectedoption2" },
{ "option2": "selectedoption3" },
{ "option2": "selectedoption4" }
]
var selectedOption = jQuery(".option .value").eq(0).text();
for(var i = 0; i < data.length; i++) {
if(data[i].selectedOption) {
console.log(selectedOption);
// i want to reach selectedoption1
}
}
var数据=[
{“选项1”:“selectedoption1”},
{“选项2”:“selectedoption2”},
{“选项2”:“selectedoption3”},
{“选项2”:“SelectedOptions 4”}
]
var selectedOption=jQuery(“.option.value”).eq(0.text();
对于(变量i=0;i
由于它们都只有一个键/值,您可以使用find()
并将其与对象中的第一个值进行比较。值
var数据=[
{“选项1”:“selectedoption1”},
{“选项2”:“selectedoption2”},
{“选项2”:“selectedoption3”},
{“选项2”:“SelectedOptions 4”}
]
让我们查找=“SelectedOptions 2”
let found=data.find(obj=>Object.values(obj)[0]==looking\u)
console.log(已找到)
//如果值不存在,则未定义:
让我们不要在这里=“一些其他价值”
found=data.find(obj=>Object.values(obj)[0]==not_此处)
console.log(已找到)
您的数组数据
已损坏,您确定您的意思是:var data=[{“option1”:“selectedoption1”},{“option2”:“selectedoption2”},{“option2”:“selectedoption3”},{“option2”:“selectedoption4”}
?@TehSoTo是的,谢谢。我编辑以提问数组中的所有对象是否总是只有一个键/值?@MarkMeyer是的!有许多方法,根据所需的浏览器支持,find()
或filter()
将允许您查看元素是否匹配。否则,可以编写一个循环来测试是否存在。请注意,find()
仅适用于MS Edge,而不适用于IE。=
应该是==
@DanielOrmeño您能提供一个示例,说明何时您可能会看到这两个比较字符串之间的差异吗?在使用JS时,为什么它们总是字符串呢?DanielOrmeño->因为jQuery(“.option.value”).eq(0).text()
,但在这里查找“1”
通常非常有用,而且可能是正确的行为。尽管如此,这一点还是有道理的。在给定的情况下考虑哪一个是最好的。