如何将函数的结果存储到变量?
在导航包含数组的对象时,我正在查找一个值 value1 ,一旦找到,我想获取其中一个属性的值, property1
我在下面使用的代码是一个示例,但不正确。
function loadSets(id){
clworks.containers.find(function(i){
return i.get('property1')===id;
});
}
我的目的是浏览下面的对象:
clworks.containers
containers[0].property0.id
containers[1].property1.id
我试图确定如何查找数组中哪个项的属性值等于函数中使用的id,然后将其存储为变量。
答案 0 :(得分:2)
简单地:
var myVar = loadSets(id);
好的,我现在理解你的问题,你的情况如下:
array
个包含名为containers
; array
,查找属性id
的属性property1
,该属性等于名为loadSets(id)
的函数中指定的属性; id
的对象存储在变量中。我是对的吗? 如果是这样,这应该可以解决您的问题:
// This function iterates through your array and returns the object
// with the property id of property1 matching the argument id
function loadSets( id ) {
for(i=0; i < containers.length; i++) {
if( containers[i].property1.id === id )
return containers[i];
}
return false;
}
在此之后你只需要按照我在你的问题的第一个答案中所说的做,然后根据你的需要触发它。我提出quick JSBin for you。尝试将10或20放入input
字段,然后点击 find 按钮;它将返回您要查找的对象。尝试输入任何其他号码,它将返回 Not found 。
答案 1 :(得分:0)
目前你的函数loadSets实际上并没有返回任何内容,因此你无法存储结果。
尝试:
function loadSets(id){
return Base.containers.find(function(i){
return i.get('entityid')===id;
});
}
将结果输入变量:
var result = loadSets(id);