【问题标题】:Javascript - Getting object's keys when object is an array of objectsJavascript - 当对象是对象数组时获取对象的键
【发布时间】:2016-09-22 22:05:18
【问题描述】:

我无法在类似于以下的代码块中获取键值:

var someArray = [];
someArray.push(objX, objY, objZ); //each of these objects pushed in have 1 key/value pair

for (var i = 0; i < someArray.length; i++) {
    switch (Object.keys(someArray[i][0])) { //Not sure that "[i][0]" is valid?
        //now set tags using Jquery
    }
}

所以在上面的代码示例中,我传入了一个对象数组(每个对象都是一个键/值对)。并且想要获取其中每一个的键,因此我可以使用 Jquery 设置与每个对应的 HTML 标记。

想法:只要 [i] 就足够了,因为每个对象的键的数组都只有 1?

任何帮助表示赞赏!

【问题讨论】:

    标签: javascript jquery html arrays web


    【解决方案1】:

    如果每个对象肯定只有一个可枚举属性,那么您可以使用Object.keys(someArray[i])[0] 在循环中获取该属性的名称。 Object.keys 返回对象自己的可枚举属性名称的数组,[0] 从中获取第一个条目。 (当然,someArray[i][theName] 会为您提供该属性的。)

    例子:

    var objX = {
      x: "ecks"
    };
    var objY = {
      y: "why"
    };
    var objZ = {
      z: "zee"
    };
    var someArray = [];
    someArray.push(objX, objY, objZ);
    
    for (var i = 0; i < someArray.length; i++) {
      var arrayEntry = someArray[i];
      var name = Object.keys(arrayEntry)[0];
      console.log(name + " is " + arrayEntry[name]);
    }

    【讨论】:

    • 我肯定是想多了这个问题...这行得通,非常感谢!!
    • @codeglove26: Object.keys(someArray[i][0])如此接近。 :-)
    【解决方案2】:

    将数组中的对象用作真实对象。

    var objX = {key: 'one', value: 'oneValue'};
    var objY = {key: 'two', value: 'twoValue'};
    var objZ = {key: 'three', value: 'threeValue'};
    
    var someArray = [];
    someArray.push(objX, objY, objZ); //each of these objects pushed in have 1 key/value pair
    
    for (var i = 0; i < someArray.length; i++) {
        var obj = someArray[i];
        var key = obj.key;
        var value = obj.value;
    }
    

    【讨论】:

      猜你喜欢
      • 2021-06-30
      • 2020-09-29
      • 2021-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-05
      • 1970-01-01
      • 2012-02-04
      相关资源
      最近更新 更多