Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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_Underscore.js - Fatal编程技术网

Javascript 对象通过键获取值

Javascript 对象通过键获取值,javascript,jquery,underscore.js,Javascript,Jquery,Underscore.js,我有点被一个问题缠住了。这是对我的AJAX调用的响应 var test = [ { "analytics.feature": "false" }, { "demo": "true" }, { "analytics.demo": "false" } ] 现在我想检查analytics.demo是启用还是禁用 我可以用uu.find吗 查找(test,{analytics.demo})//返回错误 我只是想这么做 if(analytics.demo)

我有点被一个问题缠住了。这是对我的AJAX调用的响应

var test = [
  {
    "analytics.feature": "false"
  },
  {
    "demo": "true"
  },
  {
    "analytics.demo": "false"
  }
]
现在我想检查analytics.demo是启用还是禁用

我可以用uu.find吗

查找(test,{analytics.demo})//返回错误

我只是想这么做

if(analytics.demo) {
//Do something
}
我该怎么做?有人能帮忙吗


我可以使用下划线JS/jQuery来获取键的确切值,而不是迭代对象和比较吗?

如果您使用下划线,请查看有关查找的文档:

Find为数组中的每个元素运行一个谓词函数,并返回一个新数组,该数组包含谓词函数返回true的每个值

在本例中,我们希望找到元素是否具有field analytics.demo 为此,我们可以使用下划线函数
。.has

总而言之:

var result = _.find(test, function(elem) {
    return _.has(elem, "analytics.demo");
  }
);

假设您使用的是下划线,请查看有关查找的文档:

Find为数组中的每个元素运行一个谓词函数,并返回一个新数组,该数组包含谓词函数返回true的每个值

在本例中,我们希望找到元素是否具有field analytics.demo 为此,我们可以使用下划线函数
。.has

总而言之:

var result = _.find(test, function(elem) {
    return _.has(elem, "analytics.demo");
  }
);

您可以检查数组中的任何项是否与特定条件匹配,如:

var isDemoEnabled = test.some(function (item) {
    return item['analytics.demo'] === 'true';
});

if (isDemoEnabled) {
    // Do something 
}

如果值是布尔值,则可以删除
==“true”

您可以检查数组中的任何项是否与特定条件匹配,如下所示:

var isDemoEnabled = test.some(function (item) {
    return item['analytics.demo'] === 'true';
});

if (isDemoEnabled) {
    // Do something 
}

如果值是布尔值,您可以删除
==“true”

您可以迭代并检查是否给出了键,然后返回结果

函数getKeyValue(数组,键){ var值; array.some(函数(a){ 如果(输入a){ 值=一个[键]; 返回true; } }); 返回值; } var test=[{“analytics.feature”:“false”},{“demo”:“true”},{“analytics.demo”:“false”}]
console.log(getKeyValue(test,'analytics.demo');/'false'一个具有此值的字符串
,您可以迭代并检查是否给出了键,然后返回结果

函数getKeyValue(数组,键){ var值; array.some(函数(a){ 如果(输入a){ 值=一个[键]; 返回true; } }); 返回值; } var test=[{“analytics.feature”:“false”},{“demo”:“true”},{“analytics.demo”:“false”}] console.log(getKeyValue(test,'analytics.demo');/'false'具有此值的字符串 (注意,这使用ES6。对于ES5,使用
var options=Object.assign.apply(Object,test)
,您还需要使用polyfill
Object.assign

这将与用于将对象合并为一个对象,然后从新的单个对象中获取“analytics.demo”选项。必须使用访问它,因为钥匙上有一个点。它与字符串
true
进行比较,因为
“false”
(字符串)为true,而
false
(布尔值)为false

有更多关于和的信息

PS有没有办法让Ajax调用使用适当的布尔值而不是字符串?这样更容易合作

(注意,这使用ES6。对于ES5,使用
var options=Object.assign.apply(Object,test)
,您还需要使用polyfill
Object.assign

这将与用于将对象合并为一个对象,然后从新的单个对象中获取“analytics.demo”选项。必须使用访问它,因为钥匙上有一个点。它与字符串
true
进行比较,因为
“false”
(字符串)为true,而
false
(布尔值)为false

有更多关于和的信息


PS有没有办法让Ajax调用使用适当的布尔值而不是字符串?使用它会更容易。

纯javascript有什么问题<代码>测试[2][“analytics.demo”]将返回“false”…订单不断变化。无论如何,我都可以搜索“键”并获取值。而不是盲目地做测试[2]@nicaelw普通javascript有什么错<代码>测试[2][“analytics.demo”]将返回“false”…订单不断变化。无论如何,我都可以搜索“键”并获取值。而不是盲目地做测试[2]@nicael