Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何按文本比较嵌套对象_Javascript_Jquery_Object - Fatal编程技术网

Javascript 如何按文本比较嵌套对象

Javascript 如何按文本比较嵌套对象,javascript,jquery,object,Javascript,Jquery,Object,我在嵌套对象中有一个对象。我想检测对象名是否存在,获取该对象的文本值 我试着在元素内部通过for循环。但我只能走一步 var data = [ { "option1": "selectedoption1" }, { "option2": "selectedoption2" }, { "option2": "selectedoption3" }, { "option2": "selectedoption4" } ] var selectedOption = jQuery("

我在嵌套对象中有一个对象。我想检测对象名是否存在,获取该对象的文本值 我试着在元素内部通过for循环。但我只能走一步

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”
通常非常有用,而且可能是正确的行为。尽管如此,这一点还是有道理的。在给定的情况下考虑哪一个是最好的。