如何将javascript对象数组转换为所需对象属性的字符串数组?

如何将javascript对象数组转换为所需对象属性的字符串数组?,javascript,Javascript,可能重复: 鉴于: 最好的方式是什么: ['john', 'jane', ...... 'zack'] 我必须循环并将item.name推送到另一个数组中,还是有一个简单的函数来执行此操作?如果您的对象数组是items,您可以执行以下操作: var项目=[{ id:1, 名字:“约翰” }, { id:2, 姓名:“简” }, { id:2000, 姓名:“扎克” }]; 变量名称=items.map(函数(项){ 返回项目['name']; }); console.log(名称); 控

可能重复:

鉴于:

最好的方式是什么:

['john', 'jane', ...... 'zack']

我必须循环并将
item.name
推送到另一个数组中,还是有一个简单的函数来执行此操作?

如果您的对象数组是
items
,您可以执行以下操作:

var项目=[{
id:1,
名字:“约翰”
}, {
id:2,
姓名:“简”
}, {
id:2000,
姓名:“扎克”
}];
变量名称=items.map(函数(项){
返回项目['name'];
});
console.log(名称);
控制台日志(项目)在JavaScript数组上使用本机函数:

var yourArray = [ {
    'id':1,
    'name':'john'
},{
    'id':2,
    'name':'jane'
}........,{
    'id':2000,
    'name':'zack'
}];

var newArray = yourArray.map( function( el ){ 
                                return el.name; 
                               });

您可以使用此功能:

function createStringArray(arr, prop) {
   var result = [];
   for (var i = 0; i < arr.length; i += 1) {
      result.push(arr[i][prop]);
   }
   return result;
}
函数createStringArray(arr,prop){
var结果=[];
对于(变量i=0;i
只需传递对象数组和所需的属性。
即使在旧的EcmaScript实现中,上面的脚本也可以工作。

您可以这样做,只监视对象自己的属性:

var arr = [];

for (var key in p) {
    if (p.hasOwnProperty(key)) {
        arr.push(p[key]);
    }
}

您确定需要将其转换为这样的数组吗?通常情况下,进行这样的转换表明您可能正在以错误的方式处理潜在问题。退一步,确保情况并非如此,这可能是有用的。@shauna我的问题是这样的。我使用bootstrap的typeahead,它只访问第二种格式:一个字符串数组。我的ajax调用将返回第一种格式,因为我需要ID。我可以继续扩展boostrap的typeahead,但要这样做:将第二种格式发送到bootstrap。只要保留第一种格式,当用户选择选项时,检查第一个对象并根据需要使用id。@bru.scopelliti
map()
是本机JavaScript,而不仅仅是jQuery。@bru.scopelliti-我的答案与jQuery无关。。这不是jQuery。这只是现代的javascript。酷吧?@bru.scopelliti:我没有看到任何jQuery。你可以使用更现代的语法,比如:names=items.map((item)=>item.name);我们如何像这样映射JSON结构<代码>变量yourArray=[{“选项”:[{'id':2,'name':'Javascript'},{'id':2000,'name':'Ruby'}]}]
var arr = [];

for (var key in p) {
    if (p.hasOwnProperty(key)) {
        arr.push(p[key]);
    }
}