我有一个很长的字体数据数组,超过100个这样的元素:
var fonts = [
{
"id": 1,
"name": "Arial",
"set": 1
},
{
"id": 3,
"name": "Aller",
"set": 1
},
{
"id": 4,
"name": "Amatic",
"set": 0
},
{
"id": 5,
"name": "Architects Daughter",
"set": 0
},
{
"id": 6,
"name": "Black Jack",
"set": 0
}
]
现在我想像这样优化我的数组(仅包含name
数据的新数组)
fonts = [
"Arial",
"Aller",
"Amatic",
"Architects Daughter",
"Black Jack"
]
我可以通过以下方式完成:
var _tempArray;
$.each(fonts,function(){
_tempArray.push($(this).name);
});
fonts = _tempArray;
但我知道这不是一个漂亮的解决方案。我能做些什么更好?
答案 0 :(得分:3)
map非常适合:
var names = fonts.map(function(item) { return item.name });
答案 1 :(得分:2)
您可以使用$.map
功能,就像这样
fonts = $.map(fonts, function(val) {
return val.name;
});
如果您的浏览器支持Array.prototype.map
,则可以使用
fonts = fonts.map(function(val) {
return val.name;
});