【问题标题】:Get element of JS object with an index获取带有索引的 JS 对象的元素
【发布时间】:2013-01-25 23:37:41
【问题描述】:

好吧,假设我有我的对象

myobj = {"A":["Abe"], "B":["Bob"]}

我想从中取出第一个元素。正如我希望它返回索引为AAbe。我怎样才能按照myobj[0] 的方式做一些事情并摆脱“Abe”。

【问题讨论】:

  • 你不能,可靠;无法保证存储在对象中的属性的顺序。
  • 你能构造一个没有歧义的例子吗?哪个B 在这里很重要?
  • 我按照应该编写的方式构建了示例。

标签: javascript object


【解决方案1】:
$.each(myobj, function(index, value) { 
    console.log(myobj[index]);
});

【讨论】:

  • 你切换了右括号和大括号!
【解决方案2】:
myobj = {"A":["Abe"], "B":["Bob"]}

Object.keys(myobj)[0];  //return the key name at index 0
Object.values(myobj)[0]  //return the key values at index 0

【讨论】:

    【解决方案3】:
    var myobj = {"A":["Abe"], "B":["Bob"]};
    
    var keysArray = Object.keys(myobj);
    
    var valuesArray = Object.keys(myobj).map(function(k) {
    
       return String(myobj[k]);
    
    });
    
    var mydata = valuesArray[keysArray.indexOf("A")]; // Abe
    

    【讨论】:

      【解决方案4】:

      我知道这是一个迟到的答案,但我认为这是 OP 要求的。

      myobj[Object.keys(myobj)[0]];
      

      【讨论】:

      【解决方案5】:

      JS 对象没有定义的顺序,它们(根据定义)是一组 未排序的键值对。

      如果“第一个”是指“按字典顺序排列的第一个”,则可以使用:

      var sortedKeys = Object.keys(myobj).sort();
      

      然后使用:

      var first = myobj[sortedKeys[0]];
      

      【讨论】:

        【解决方案6】:

        如果你想要一个特定的顺序,那么你必须使用一个数组,而不是一个对象。对象没有定义的顺序。

        例如,使用数组,您可以这样做:

        var myobj = [{"A":["B"]}, {"B": ["C"]}];
        var firstItem = myobj[0];
        

        然后,您可以使用 myobj[0] 获取数组中的第一个对象。

        或者,取决于你想要做什么:

        var myobj = [{key: "A", val:["B"]}, {key: "B",  val:["C"]}];
        var firstKey = myobj[0].key;   // "A"
        var firstValue = myobj[0].val; // "["B"]
        

        【讨论】:

          【解决方案7】:
          myobj.A
          

          ------- 或 ----------

          myobj['A']
          

          会给你'B'

          【讨论】:

          • 但是 OP 的观点是属性名称 A 是未知的。
          猜你喜欢
          • 1970-01-01
          • 2023-02-09
          • 1970-01-01
          • 1970-01-01
          • 2018-05-06
          • 2011-06-27
          • 1970-01-01
          • 2016-04-02
          • 2017-02-08
          相关资源
          最近更新 更多