【问题标题】:Store function result to variable将函数结果存储到变量
【发布时间】:2013-02-27 17:00:42
【问题描述】:

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

在导航包含数组的对象时,我正在寻找一个值,value1,一旦找到,我想获取其属性之一的值,property1 em>。

我在下面使用的代码是一个示例,不正确。

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

我的意图是导航下面的对象:

clworks.containers
    containers[0].property0.id
    containers[1].property1.id

我正在尝试确定如何找到数组中的哪个项目的属性值等于函数中使用的 id,然后将其存储为变量。

【问题讨论】:

  • 您真正想要返回的是什么?此外,在 jQuery 中没有find 的版本可以接受 function
  • 要存储值的变量在哪里?
  • 该函数没有返回值。它只是查找一个元素,然后不使用它。我不确定我是否理解你真正想要做什么......
  • @JeremyT:甚至没有这样做,find 不接受函数。
  • 谁说这是用jQuery?不会是什么吧?

标签: javascript variables object


【解决方案1】:

简单地说:

var myVar = loadSets(id);

编辑

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

  1. 您有一个 array,其中包含名为 containers 的对象;
  2. 你想遍历这个array,寻找属性property1的属性id,它等于函数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;

}

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

【讨论】:

  • 但 loadSets 实际上并没有返回任何东西,所以 myVar 只是未定义
【解决方案2】:

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

试试:

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

并将结果放入变量中:

var result = loadSets(id);

【讨论】:

    猜你喜欢
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    • 2015-06-11
    • 2014-06-26
    相关资源
    最近更新 更多