将函数结果存储到变量

时间:2013-02-27 17:00:43

标签: javascript variables object

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

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

2 个答案:

答案 0 :(得分:2)

简单地:

var myVar = loadSets(id);

修改

好的,我现在理解你的问题,你的情况如下:

  1. 您有array个包含名为containers;
  2. 的对象
  3. 您希望遍历此array,查找属性id的属性property1,该属性等于名为loadSets(id)的函数中指定的属性;
  4. 找到后,将带有请求的id的对象存储在变量中。
  5. 我是对的吗? 如果是这样,这应该可以解决您的问题:

    // 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);