如何获得物体的长度?

时间:2016-10-07 06:42:50

标签: javascript

我一直试图这样做,但它没有用,我的对象有2个元素,它只返回1个元素:/

这是我的代码

var jumbo = document.getElementsByClassName("jumbotron");
var button = document.getElementById("changebg");

var tiles = {
  tile1 : {
    header : "header1",
    desc : "desc1"
  },
  tile2 : {
    header : "header2",
    desc : "desc2"
  }
};

function getObjectLength(obj){
  var count = 0;
  for ( var i in obj) {
    if (obj.hasOwnProperty(i)) {
      count++;
    };
  };
  return count;
};

function changeBackground(){
  document.getElementsByClassName("jumbotron")[0].innerHTML = getObjectLength(document.getElementsByClassName("jumbotron"));
};

3 个答案:

答案 0 :(得分:0)

使用Object.keys(obj).length获取对象的长度

    var tiles = {
      tile1 : {
        header : "header1",
        desc : "desc1"
      },
      tile2 : {
        header : "header2",
        desc : "desc2"
      }
    };
    
    console.log(Object.keys(tiles ).length);

您的函数“getObjectLength”也可以工作并返回2

var tiles = {
  tile1 : {
    header : "header1",
    desc : "desc1"
  },
  tile2 : {
    header : "header2",
    desc : "desc2"
  }
};

function getObjectLength(obj){
  var count = 0;
  for ( var i in obj) {
    if (obj.hasOwnProperty(i)) {
      count++;
    };
  };
  return count;
};


console.log(getObjectLength(tiles));

我猜,你得到的是1,因为只有一个元素的类名为“jumbotron”。

getObjectLength(document.getElementsByClassName("jumbotron"))

答案 1 :(得分:0)

尝试Object.keys(obj).length方法

var tiles = {
 tile1 : {
   header : "header1",
   desc : "desc1"
 },
 tile2 : {
   header : "header2",
   desc : "desc2"
 }
}

console.log(Object.keys(tiles).length);

答案 2 :(得分:0)

document.getElementsByClassName("jumbotron")[0].innerHTML = document.getElementsByClassName("jumbotron").length;

试试这个。 你的函数正在寻找json对象的长度。