获取对象属性值

时间:2013-02-20 18:09:07

标签: javascript jquery html arrays object

我有一个对象,其中包含一个对象数组,我需要从中获取它们的属性值。

作为一个例子,这是我需要得到的:

Stronghold.bins.models[0].attributes.entity.title

返回"要塞标题1"

function grabItemName(){
   var itemName=$(Stronghold.bins).each(function(){
      return this.models[0].attributes.entity.title == title;
      console.log(itemName);
   })
};

(如果有更好的方式让我提出这个问题请告诉我)

如果问得不好,我道歉!

目前的问题是它不了解数组值' [0]'并且无法读取它,因为它未定义。我需要做些什么才能抓住这个标题'数组中所有项的值?

2 个答案:

答案 0 :(得分:2)

  

获取数组中所有项目的“title”值需要做什么?

这就是.map [docs]的用途。它允许您将数组中的每个值映射到另一个值。

在下面我假设你想迭代每个Stronghold.bins.models,因为迭代Stronghold.bins对提供的信息没有意义:

var titles = $.map(Stronghold.bins.models, function(obj) {
    return obj.attributes.entity.title;
});
// `titles` is now an array containing `.attributes.entity.title;` of
// each object.
  

目前的问题是它不理解数组值'[0]'而无法读取它,因为它未定义。

那么,这将不再发生;)在您的示例中,您将迭代Stronghold.bins对象的属性。其中一个属性是models本身(!),我怀疑任何其他属性值都有models属性。

答案 1 :(得分:-1)

尝试使用每个功能的其他版本:

$.each(Stronghold.bins, function () {

});

您使用的版本用于循环浏览页面上的元素,例如$('body div p').each(function() {}),这不是您在此实例中所需的内容:您希望循环遍历Stronghold.bins中包含的值