-1

如何将函数的结果存储到变量中?

在导航包含数组的对象时,我正在寻找一个值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,然后将其存储为变量。

4

2 回答 2

3

简单地:

var myVar = loadSets(id);

编辑

好的,据我现在了解您的问题,您的情况如下:

  1. 您有一个array名为containers;的包含对象。
  2. 您想遍历 this array,寻找与调用函数中指定id的属性property1相等的属性的属性loadSets(id)
  3. 找到后,将请求的对象存储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;

}

在此之后,您只需要按照我在您问题的第一个答案中所说的操作,随心所欲地触发它。我为你建立了一个快速的 JSBin。尝试在input字段中放入 10 或 20,然后点击查找按钮;它将返回您正在寻找的对象。尝试输入任何其他数字,它将返回Not found

于 2013-02-27T17:01:48.390 回答
0

目前,您的函数 loadSets 实际上并没有返回任何内容,因此您无法从中存储结果。

尝试:

function loadSets(id){
   return Base.containers.find(function(i){
      return i.get('entityid')===id;
   });
}

并将结果放入变量中:

var result = loadSets(id);
于 2013-02-27T17:06:31.723 回答