按主键选择记录

时间:2014-10-13 13:11:32

标签: javascript json

我有一些JSON数据,其中我使用唯一标识符ID定义预设,(您可以将其称为主键)。除了ID之外,还定义了许多其他属性,包括somethingelse。我想提取由其ID标识的特定记录的somethingelse属性。我试过这个:

function getSomethingElse(id) {
    return presets[id].somethingelse; 
}

但很明显,上面的代码只能访问数组位置id的预设。我试图访问实际ID为id的预设。

这可能是一个愚蠢的问题,但我还没有找到任何我想要做的事情的例子!

2 个答案:

答案 0 :(得分:2)

如果将ID用作主键,那么我建议将预设数据转换为散列映射而不是数组。

var presets= {};
presets["guid1"] = "hello"
presets["guid2"] = "world"

这应该与您发布的代码打算完全一致。

答案 1 :(得分:1)

假设$scope.presets是一个数组,您需要迭代像

这样的对象
$scope.loadPreset(id) {
    angular.forEach($scope.presets, function(value, key) {
        if(value.id == id){
            $scope.somethingelse = value.somethingelse; 
        }         
    });
}