例如,我有一个这样的列表:
[{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>
答案 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);
答案 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");