首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript可以在数组中设置布尔值吗?

Javascript可以在数组中设置布尔值吗?
EN

Stack Overflow用户
提问于 2014-01-23 08:01:02
回答 1查看 1.7K关注 0票数 1

Javascript问题。

正如标题所述,是否可以将布尔值(truefalse)设置为数组,然后检查数组中是否存在这些值之一?

假设我有返回truefalse的函数。

示例代码:(使用jQuery)

代码语言:javascript
复制
var abort = [];//make an empty array

function someFunc() {
    var returnVal = false;

    if( some condition ) {
        returnVal = true;
        return returnVal;
    }

    return returnVal;
}

someElement.each(function() {
    abort.push( someFunc() );    //push true or false in array
});
//abort array will look eventually something like...
//[true, false, true, false, false, true, ...]

//check if `true` exists in array jQuery approach
var stop = ( $.inArray(true, abort) > -1) ? true : false ;

if( stop ) {
    console.log('TRUE FOUND AT LEAST ONE IN ARRAY!');
}

这似乎没问题。但我只是想知道这是不是正确的方法..。

EN

回答 1

Stack Overflow用户

发布于 2014-01-23 08:05:09

如果不想调用所有函数,如果其中任何函数返回true,则可以使用以下的本机Array.prototype.some方法

代码语言:javascript
复制
if (someElement.some(function(currentObject) {
    return <a bool value>;
}))) {
    console.log("Value exists");
} else {
    console.loe("Value doesn't exist");
}

例如,

代码语言:javascript
复制
var someArray = [1,5,6,8,3,8];

if(someArray.some(function(currentObject) {
    return currentObject === 3;
})) {
    console.log("3 exists in the array");
} else {
    console.log("3 does not exist in the array");
}

会打印

代码语言:javascript
复制
3 exists in the array

如果您想执行所有函数,而不管结果如何,但是如果您想知道其中至少一个函数是否返回了true,那么您可以使用Array.prototype.reduce,如下所示

代码语言:javascript
复制
var someArray = [1,5,6,8,4,8];

function printer(currentObject) {
    console.log(currentObject);
    return currentObject === 3;
}

if(someArray.reduce(function(result, currentObject) {
    return result || printer(currentObject);
}, false)) {
    console.log("3 exists in the array");
} else {
    console.log("3 does not exist in the array");
}

输出

代码语言:javascript
复制
1
5
6
8
4
8
3 does not exist in the array
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21302521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档