Javascript 从另一个数组创建数组的快速方法&x27;s变量?

Javascript 从另一个数组创建数组的快速方法&x27;s变量?,javascript,jquery,Javascript,Jquery,假设我有两个数组: var a = []; var b = []; a.push({id:1, name:"Joe"}); a.push({id:2, name:"Jeff"}); a.push({id:3, name:"John"}); 有没有一种快速的方法可以在Javascript中用a的名称填充b,或者我必须使用循环 例如,类似于: b = a[].name; // b is now ["Joe","Jeff","John"] 如果您不关心较旧的浏览器,可以使用: 如果您确实关

假设我有两个数组:

var a = [];
var b = [];

a.push({id:1, name:"Joe"});
a.push({id:2, name:"Jeff"});
a.push({id:3, name:"John"});
有没有一种快速的方法可以在Javascript中用
a
的名称填充
b
,或者我必须使用循环

例如,类似于:

b = a[].name;    // b is now ["Joe","Jeff","John"]

如果您不关心较旧的浏览器,可以使用:


如果您确实关心较旧的浏览器,您可以多填充
map
方法(),也可以按照您的建议使用普通循环(尽管
map
方法显然使用了某种形式的循环)。

您必须循环。该语言中现在有各种集合操作函数。这里有用的一个方法是
map

var b = a.map(function(person) {
    return person.name;
});
签出使许多类似操作变得简单的库。它有一个名为
pulk
的方法,在这里非常理想

var b = _.pluck(a, 'name');

循环必须以某种形式使用。通过代码或调用的函数来复制特定元素。使用say
map
的解决方案仍然在引擎盖下使用一个循环

for (var i = 0; i < a.length; i++) {
  b.push(a[i].name);
}
for(变量i=0;i
使用jQuery,您可以说:

var b = $.map(a, function(val, i) { return val.name; });

与JavaScript自己的功能相同,只是后者是JS的一个相对较新的功能,因此在较旧的浏览器(即IE9之前的浏览器)中不起作用。

您需要迭代a,以便在b中生成每个名称的新数组。

它需要一个循环,但有一些库函数可以为您抽象循环。我倾向于使用这些类型的东西(我通常是免费的,因为我自由地使用主干网),但是你可以在JQuery中找到类似的函数,比如

我喜欢这个解决方案,而不是循环,我们使用JQuery和I def。更喜欢一个方便的函数,而不是编写另一个该死的循环。显然,如果您有一些需要超高效的代码,您可以编写自己的循环来保存所有函数调用,但对于“正常”情况,最好让
.map()
对您隐藏循环。
var b = $.map(a, function(val, i) { return val.name; });