[
{ "text": "demo1" },
{ "text": "demo2" }
]
到
["demo1", "demo2"]
我尝试过使用reduce()
答案 0 :(得分:5)
您可以使用Array.prototype.map
:
var arr = [
{"text":"demo1"},
{"text":"demo2"}
];
var texts = arr.map(function(el) {
return el.text;
});
console.log(texts);
使用ES6,您可以使用arrow functions:
var texts = arr.map((el) => el.text);
答案 1 :(得分:2)
您可以使用map()
:
var myArray = [ {"text": "demo1"}, {"text": "demo2"} ];
var newArray = myArray.map( el => el.text); // [ "demo1", "demo2"]
基本上map()
对返回新数组的数组的每个元素执行操作。
当你拥有如此小的阵列时,reduce()
很难做到这一点,但仍有可能:
var myArray = [ {"text": "demo1"}, {"text": "demo2"} ];
var newArray = myArray.reduce( (a,b) => [a.text, b.text]) // [ "demo1", "demo2" ]
在此示例中,a
是第一项,b
是第二项。
答案 2 :(得分:1)
试试这个:
var values = [
{"text":"demo1"},
{"text":"demo2"}
];
var log = [];
angular.forEach(values, function(value, key) {
this.push(value.text);
}, log);
alert(log);
答案 3 :(得分:1)
如果你使用下划线js,使用pluck转换数组会更容易,然后降低效率。
var arr = [ {"text":"demo1"}, {"text":"demo2"}];
_.pluck(arr , 'text');
output:-
=> ["demo1", "demo2"]
答案 4 :(得分:0)