【问题标题】:how to use the value of data within an multidimensional array如何在多维数组中使用数据的值
【发布时间】:2014-06-24 08:15:33
【问题描述】:

您好,我在 stackoverflow 上的第一个问题。我在 jquery 和 js 中很新。我会尽量具体。

我在另一个对象中创建了一个对象。我试图列出他们拥有的不同鱼类(对象)的人(对象)。 people object 进行得很顺利,但 object 没有成功。现在在数据源文件中我制作了 2 个数组。一人一鱼一鱼。

如下:

var data = 
[

    {
        "id": 1,
        "guid": "14f09c11-d343-44a6-a8b5-ddfc9196636f",
        "isActive": true,
        "age": 27,
        "name": "Abe",
        "fishes" : 0

    },
    {
        "id": 2,
        "guid": "3129a7d7-c956-4201-bda4-338d27e15fdf",
        "isActive": true,
        "age": 39,
        "name": "Rachel",
        "fishes":1

    },
    {
        "id": 3,
        "guid": "c4dea911-9523-4fdc-b129-f2ba10b40a8d",
        "isActive": true,
        "age": 20,
        "name": "harrison",
         "fishes":2


    }

]

var datafish = 
[
{
    "id":1,
    "name": "gruber",
    "color": "red",
    "edible": true,
    "picture":"fish1.jpg"

},
{
    "id":2,
    "name": "dorade",
    "color": "green",
    "edible": true,
    "picture":"fish2.jpg"

},
{
    "id":3,
    "name": "puff-fish",
    "color": "random",
    "edible": false,
    "picture":"fish3.jpeg"

}
]

如您所见,每个人都拥有一条鱼(在鱼下)。现在我想在 jquery 或 js 中只显示他们在他们的个人资料中拥有的鱼。我只是不知道如何引用 var data 中的 fishes 值。这正是我所需要的......

我已经在我的 js 文件中尝试过这个:

 var i = data[fishes.value];

还有:

 var i = data.fishes.value;

我希望你们能理解我的问题,如果不是生病,很乐意提供更多信息。

谢谢!

编辑:

我也会添加我的功能:

function create(persona)
{
var body = $('body');
var person = $('<div></div>').addClass('person').appendTo(body);
var name = $('<div></div>').addClass('name').appendTo(person);
var img = $('<img/>').appendTo(person);
var age = $('<div></div>').addClass('age').appendTo(person);
name.text(persona.name);
age.text(persona.age);
img.attr('src', 'graphics/' + persona.picture);
fish();



}   

function fish()
{
var body = $('body');
    var person = $('<div></div>').addClass('person').appendTo(body);
    var fishbar = $('<div></div>').addClass('fishbar').appendTo(person);

 var i = data[fishes.value]

    var fishmenu = $('<div></div>').addClass('fishmenu').appendTo(fishbar);
    var fishimg = $('<img/>').addClass('fishpicture').appendTo(fishmenu);
    var fishcolor = $('<div></div>').addClass('fishcolor').appendTo(fishmenu);
    var fishedible = $('<div></div>').addClass('fishedible').appendTo(fishmenu);
    var fishname = $('<div></div>').addClass('fishname').appendTo(fishmenu);

    fishimg.attr('src', 'graphics/' + datafish[i].picture);
    fishname.text(datafish[i].name);
    fishcolor.text(datafish[i].color);
    fishedible.text(datafish[i].edible);
    fishmenu.attr('datafish-id', i);

}

【问题讨论】:

  • 每条鱼如何映射到人?
  • 试试var i = data[0].fishes;这会得到id
  • 循环遍历所有使用$.each(data, function(i,val){ console.log(val.fishes); });

标签: javascript jquery arrays multidimensional-array


【解决方案1】:

我给你写了一个函数,你可以用它来获取一个人的鱼:

function getFish(datafish, person) {
    var fish;
    for(var i = 0; i < datafish.length; i++) {
        if(datafish[i].id == person.fishes) {
            fish = datafish[i];
            break;
        }
    }
    return fish;
}

【讨论】:

    【解决方案2】:

    只是“Think Different”评论的延续, 您有一个 Person 对象数组,一个数组(即 [1,2,3])通过从 0 到 no_of_elements-1 的索引进行访问。并且使用点符号访问对象的属性,因此您必须在需要索引的人员数组中选择一个人,

    比如你需要第一人称的鱼,第一人称要被选中 第一个人位于数据数组的第 0 个索引处,因此请使用

    data[0]
    

    现在你需要第一人称的鱼,所以使用点符号来获取鱼属性

    data[0].fishes
    

    这会给你第一人称拥有的鱼 如果您需要具有特定名称的人的鱼,请执行以下操作

    var name="Abe"
    var fishid
    for(var i=0;i<data.length;i++)
    if(data[i].name==name)
    {
     fishid=data[i].fishes;
     break;
    }
    

    现在你有了名为“Abe”的人的鱼 id;

    【讨论】:

      猜你喜欢
      • 2012-09-04
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 2016-07-29
      • 1970-01-01
      • 2012-01-05
      • 1970-01-01
      相关资源
      最近更新 更多