2016-06-02 7 views
1

Ich möchte Elemente in einem Array basierend auf ihrem Schlüssel verbinden. Ich lief durch die Bibliothek lodash versuchen _.join, _.merge(), _.groupBy() aber keiner von denen scheint zu arbeiten. Wie verbinden Sie Elemente in Array basierend auf ihrem Schlüssel?Wie verbinden Sie Elemente im Array basierend auf ihrem Schlüssel?

var myArray = [ 
    {name: 'cheesesteak'}, 
    {name: 'hamburger'}, 
    {name: 'pork roll'} 
]; 

var jawn = myArray.join(); 

console.log(jawn); 

Ideal Ausgang ...

"chessesteak, hamburger, pork roll" 

Antwort

3

Es sieht aus wie Sie auf eine einzige Eigenschaft zu map jedes Element wollen und join jene:

var myArray = [{ 
 
    name: 'cheesesteak' 
 
}, { 
 
    name: 'hamburger' 
 
}, { 
 
    name: 'pork roll' 
 
}]; 
 

 
var jawn = myArray.map(function(it) { 
 
    return it.name; 
 
}).join(); 
 

 
console.log(jawn);

5

Verwenden map() mit ES6 arrow function für String-Array zu erzeugen und dann join() Methode anzuwenden.

var myArray = [{ 
 
    name: 'cheesesteak' 
 
}, { 
 
    name: 'hamburger' 
 
}, { 
 
    name: 'pork roll' 
 
}]; 
 

 
var jawn = myArray.map(v => v.name).join(); 
 

 
console.log(jawn);


Da Pfeil Funktion unterstützt nur in aktuellen Browser normale Funktion in älteren Browser verwenden und auch polyfill option of map method überprüfen.

var myArray = [{ 
 
    name: 'cheesesteak' 
 
}, { 
 
    name: 'hamburger' 
 
}, { 
 
    name: 'pork roll' 
 
}]; 
 

 
var jawn = myArray.map(function(v) { 
 
    return v.name 
 
}).join(); 
 

 

 
console.log(jawn);

+0

Es ist ein bisschen komisch, dass Sie '.map betroffen sind()' nicht in älteren Browsern vorhandene, aber Sie verwenden den Pfeil-Funktion. '.map()' ist gut zu IE9, aber es ist die Pfeilfunktion, die lange vorher in Probleme mit der Browser-Unterstützung gelaufen wäre. Also, wechseln Sie einfach zu einer altmodischen anonymen Funktion für Ihre '.map()' und die Browser-Unterstützung wird sich sehr verbessern. Es gibt keinen Grund, warum hier eine Pfeilfunktion oder irgendeine ES6-Fähigkeit verwendet werden muss, daher bin ich überrascht, dass dies ein wichtiger Teil Ihrer Antwort ist. – jfriend00

2

lodash (v4):

var result = _.map(myArray ,'name').join(','); 

underscorejs:

var result = _.pluck(myArray ,'name').join(','); 
Verwandte Themen