Javascript 对象通过键获取值
我有点被一个问题缠住了。这是对我的AJAX调用的响应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)
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)
,您还需要使用polyfillObject.assign
)
这将与用于将对象合并为一个对象,然后从新的单个对象中获取“analytics.demo”选项。必须使用访问它,因为钥匙上有一个点。它与字符串true
进行比较,因为“false”
(字符串)为true,而false
(布尔值)为false
有更多关于和的信息
PS有没有办法让Ajax调用使用适当的布尔值而不是字符串?这样更容易合作
(注意,这使用ES6。对于ES5,使用var options=Object.assign.apply(Object,test)
,您还需要使用polyfillObject.assign
)
这将与用于将对象合并为一个对象,然后从新的单个对象中获取“analytics.demo”选项。必须使用访问它,因为钥匙上有一个点。它与字符串true
进行比较,因为“false”
(字符串)为true,而false
(布尔值)为false
有更多关于和的信息
PS有没有办法让Ajax调用使用适当的布尔值而不是字符串?使用它会更容易。纯javascript有什么问题<代码>测试[2][“analytics.demo”]将返回“false”…订单不断变化。无论如何,我都可以搜索“键”并获取值。而不是盲目地做测试[2]@nicaelw普通javascript有什么错<代码>测试[2][“analytics.demo”]将返回“false”…订单不断变化。无论如何,我都可以搜索“键”并获取值。而不是盲目地做测试[2]@nicael