【问题标题】:jquery - get value from array objectjquery - 从数组对象中获取值
【发布时间】:2016-12-24 17:54:42
【问题描述】:

我有一个像这样的对象数组

var result = [{"id":"1","price":"20.46"},{"id":"2","price":"40.00"}]

现在我可以通过

result[0].price 

但我想做的是遍历对象数组,并将 id 与用户输入的 id 进行比较并返回匹配值。所以索引应该是无关紧要的

我试图循环遍历对象数组,但我可能犯了一些语法错误,但什么也没得到。

var userinputid = 1;

result.forEach(function(){
     if(userinputid == result.id){
     alert(result.price);
  });

如何解决这个问题。

【问题讨论】:

    标签: javascript jquery arrays object keyvaluepair


    【解决方案1】:

    你忘了索引:

    var result = [{"id":"1","price":"20.46"},{"id":"2","price":"40.00"}]
    var userinputid = 1;
    
    result.forEach(function(e, index){
      if(userinputid == result[index].id){
        alert(result[index].price);
      };
    });

    【讨论】:

      【解决方案2】:

      你应该使用currentElementInLoop.id而不是result.id

      var result = [{"id":"1","price":"20.46"},{"id":"2","price":"40.00"}]
      var userinputid = 1;
      
      result.forEach(function(e) {
        if (userinputid == e.id) alert(e.price);
      });

      【讨论】:

      • 你是对的,这解决了它。时间用完会接受
      • 是的 - 这比我的解决方案更好。
      • @codenoob 如果您的 id 是唯一的,最好使用 find result.find((e) => e.id == userinputid).price; jsfiddle.net/Lg0wyt9u/1139
      【解决方案3】:

      您缺少一个结束大括号。并且您需要让函数使用元素值参数或索引参数。 试试

      result.forEach(function (elementVal) {
          if (userinputid === elementVal.id){
              alert(elementVal.price);
          }
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-06
        • 2016-09-06
        • 1970-01-01
        相关资源
        最近更新 更多