迭代思考的javascript对象,看看它是否具有一定的价值

Iterate thought javascript object to see if it has a certain value

本文关键字:是否 具有一 javascript 对象 迭代      更新时间:2023-09-26

我正在尝试找出通过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 的回调功能。它的优点是即使在嵌套对象中也能找到任何真正的值。

相关文章: