从javascript / jQuery中的字典列表中加入元素?

时间:2014-06-30 07:30:10

标签: javascript jquery html

例如,我有一个这样的列表:

[{species: "cat", weight: 100}, 
 {species: "dog", weight: 120}, 
 {species: "bird", weight: 20}]

现在我想把它转换成类似

的东西

(1)cat, dog, bird

(2)<ul><li>cat</li><li>dog</li><li>bird</li></ul>

我发现Javascript有一个join方法用于数组,但我想知道jQuery或Javascript中是否有一种方便的方法可以从字典列表中提取元素。有没有人有这方面的想法?< / p>

4 个答案:

答案 0 :(得分:4)

尝试在此上下文中使用$.each()来使用对象迭代数组

var array = [{species: "cat", weight: 100}, 
 {species: "dog", weight: 120}, 
 {species: "bird", weight: 20}];

var ul = $('<ul>');
$.each(array,function(i,val){
  ul.append($('<li>',{text:val.species}));
})

$('body').append(ul);

DEMO

答案 1 :(得分:2)

您可以使用$ .map

 var species = [{species: "cat", weight: 100}, 
               {species: "dog", weight: 120}, 
               {species: "bird", weight: 20}]
 var arr = $.map(species, function(obj) { return obj["species"]; })

答案 2 :(得分:1)

您可以使用Array.prototype.map方法:

var plucked = arr.map(function(elem) {
   return elem.species;
});

var list = "<ul><li>" + plucked.join('</li><li>') + "</li></ul>";

请注意,IE8及以下版本不支持map方法,您可以使用polyfill,或者如果您正在加载jQuery,则可以使用它$.map {{3}} 1}}实用功能。

答案 3 :(得分:0)

您可以尝试这样的事情:

var a =[{species: "cat", weight: 100}, 
 {species: "dog", weight: 120}, 
 {species: "bird", weight: 20}];
var newUl = $("<ul/>", {});

$.each(a, 
       function(){
           var list = $("<li/>", {});
           var text = this.species;
           $(list).html(text);
           $(list).appendTo(newUl);
       });

$(newUl).appendTo("body");

fiddle