迭代思考的javascript对象,看看它是否具有一定的价值
Iterate thought javascript object to see if it has a certain value
我正在尝试找出通过javascript对象进行交互的最佳方法,以查看其中一个键是否设置为某个值。 我知道我可以做一个foreach循环,但我觉得有一种更简单的方法。
var myObject = {
a: false,
b: false,
c: false,
x: false
}
Id 类似于一种快速方法,如果这些值中至少有一个设置为 true,则返回 true,如果所有值都设置为 false。
你必须迭代,但你可以做这样的事情
var hasTrue = Object.keys(myObject).some(function(key) {
return myObject[key];
});
这使用Array.some
,并在遇到true
值时立即停止。
小提琴
要返回以yourValue
作为其值的key
,只需执行以下操作:
var yourValue = true;
var key = Object.keys(myObject).filter(function (i) {
return myObject[i] === yourValue;
})[0];
如果未找到密钥,它将返回undefined
。
如果您不需要key
并且只需要知道该值是否在您的对象中,则可以使用 some
方法:
var hasValue = Object.keys(myObject).some(function (i) {
return myObject[i] === yourValue;
});
var any_true = false;
JSON.stringify(myObject, function(key, value) {
if (value === true) any_true = true;
});
这使用 JSON.stringify
的回调功能。它的优点是即使在嵌套对象中也能找到任何真正的值。
相关文章:
- node.js是否具有'match()'方法如果是,语法是什么
- 确定javascript中的html表对象是否具有<colgroup>是否
- 是否有一种方法可以使用公共代码库在Java和JavaScript中进行输入验证
- 检测用户是否具有打印功能
- 如何检查两个字符串是否具有相同的字符,包括特殊字符
- E4X中是否有一种方法可以将基元数据类型的XMLList转换为类似于Array.join()的Array
- 在JSON项上循环,无论JSON对象是否具有多个数组
- Chrome扩展:是否有一种方法可以运行JavaScript来获取页面上的内部html,并将其保存到扩展中的变量中
- ECMAScript 2015(ECMAScript6)是否具有类初始值设定项
- html元素是否具有内置的属性
- 检查用户是否具有角色分析云代码
- 如何检查列表的第一个子级是否具有“选定”类
- json_encode是否具有足够的XSS保护
- 在JavaScript / jQuery中,是否有一种更短的方法可以编写在同一个测试变量上具有许多OR的“if”语句
- 检查单词是否具有相同的字母 - 错过一项测试
- 是否有一种方法可以区分具有相同ID但位于不同浏览器选项卡中的元素
- 是否有一种方法可以使输入元素上存在ngMaxlength属性,但使其具有值“0”;无限”;
- 是否存在一种数据结构,具有高效的插入/删除,但具有位置排序
- 是否有一种方法来获得元素的列表,这些元素当前在viewport中具有某些类可见
- jquery来检查来自另一页面的h1是否具有单词"";股票"