下划线,错误地检索值

时间:2015-03-05 19:45:20

标签: javascript underscore.js

我正在尝试使用像这样的链检索嵌套项值。我正在遍历的对象看起来像这样:

var testStates = [{
        "module": "module1",
        "customUrl": [
            { "mod1": "2" },
            { "mod2": "1" }
        ]
    }, {
        "module": "module2",
        "customUrl": [
            { "mod3": "false" },
            { "mod4": "5" }
        ]
    }
];

我的链条看起来像这样:

findState = _.chain(currentState)
              .findWhere({ module: moduleName})
              .result('customUrl')
              .find(function (v) { return v.hasOwnProperty(stateName)})
              .values()
              .value();

这是返回正确的项目,但它本身就是一个数组,所以如果我console.log它,它会返回["false"]而不是"false"。不确定是什么导致了这一点。

1 个答案:

答案 0 :(得分:1)

你需要

.result(stateName)

而不是

.values()

前者按键返回对象的值,后者 - 对象的所有值的数组。

JSFiddle:http://jsfiddle.net/65j2r50t/