【问题标题】:How to loop through Object and then get IndexOf string such as A, B..and then convert to value if A=1, b=2如何遍历Object然后获取IndexOf字符串,例如A,B..然后如果A = 1,b = 2则转换为值
【发布时间】:2018-08-22 20:57:58
【问题描述】:
var graph= {
node: [
  { id:"A",  
    name:"A" 
  },
  { id:"B",  
    name:"B" 
  }
]
}

var yourInput = document.getElementById("vertext").value
// The user inputs A or B..

var convertToInt = graph.node.indexOf(yourInput)+1;
// I am always getting 0 ..

我的解决方案:我遍历图形节点对象并检查输入的 indexOf 是否为 A、B..然后根据对象数组中存在的 IndexOf 字母将用户输入转换为整数值。

请有人解释一下我在这里做错了什么......?

【问题讨论】:

    标签: javascript object prototype


    【解决方案1】:

    因为您想根据每个数组元素的属性检查一个值,所以Array.findIndex 是合适的工具,而不是 Array.indexOf。

    var convertToInt = graph.node.findIndex(e => e.id == yourInput) + 1;
    

    内部函数根据您的输入检查每个数组元素的 id 属性。您可以轻松修改它以检查 name 属性,或者进行您能想到的任何比较。

    var graph = {
      node: [{
          id: "A",
          name: "A"
        },
        {
          id: "B",
          name: "B"
        }
      ]
    }
    
    document.getElementById("vertext").onchange = function() {
      var yourInput = document.getElementById("vertext").value
      // The user inputs A or B..
      var convertToInt = graph.node.findIndex(e => e.id == yourInput) + 1;
      document.getElementById("output").textContent = convertToInt;
    };
    <select id="vertext">
    <option value=""></option>
    <option value="A">A</option>
    <option value="B">B</option>
    </select>
    <br>
    Index is <span id="output"><span>

    【讨论】:

    • 嗨詹姆斯,我尝试了使用常规函数的解决方案,如下所示 var convertToInt = graph.node.findIndex(function(e){ e.id == vertex1 + 1; }); //当我console.log convertToInt 我得到-1,我做错了什么?
    • @manojkarmocha 您缺少return 声明:return e.id == yourInput;。另外,你不应该给它加 1,ID 是一个字符串。
    • @manojkarmocha 箭头函数以简单格式自动添加return,但如果您编写传统函数,则必须显式执行。
    • @barmar 我使用了 return 并删除了 1 但我仍然得到 -1
    • @manojkarmocha 我使用 James 的箭头函数添加了一个 sn-p。您应该能够用传统功能替换它,它应该仍然可以工作。
    猜你喜欢
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多