2017-06-07 4 views
-1

Ich habe zwei Javascript-Array wie folgt.Wie Text an Array-Wert anhängen JavaScript

var category = ['Jacket']; 
var subcategory = ['Woman', 'Men', 'Kids']; 

und ich mag die Kombination von Array-Wert wie diese

var finalCategory = ['Jacket Woman', 'Jacket Men', 'Jacket Kids']; 

wenn Kategorie mehr als ein Endergebnis

var category = ['Jacket', 'Bags']; 
var subcategory = ['Woman', 'Men', 'Kids']; 
var finalCategory = ['Jacket Woman', 'Jacket Men', 'Jacket Kids', 'Bags Woman', 'Bags Men', 'Bags Kids']; 

Bitte helfen, danke.

+7

Also, wenn 'Category' Array enthält> 1 Punkt, was dann? – Jamiec

+0

versuchen, docs – degr

+1

zu lesen Was Sie suchen, ist 'Array.map' – Rajesh

Antwort

2

können Sie verwenden

var category = ['Jacket', 'Bags']; 
var subcategory = ['Woman', 'Men', 'Kids']; 
var combos = []; 
category.forEach(function(a){ 
    subcategory.forEach(function(b){ 
     combos.push(a + ' ' + b); 
    }); 
}); 
+0

Kleiner und sehr netter Code. Danke. – Opsional

3
var category = ['Jacket', 'Bags']; 
var subcategory = ['Woman', 'Men', 'Kids']; 
var finalCategory = [] 

for(var i = 0; i < category.length; i++){ 
    for(var ii = 0; ii < subcategory.length; ii++){ 
     finalCategory.push(category[i] + ' ' + subcategory[ii])  
    } 
} 
console.log(finalCategory) 

Verschachtelte Schleife. Eines deckt alle Hauptkategorien ab und deckt dann die darin enthaltenen Unterkategorien ab.

+0

Waw, woks gut. Danke. – Opsional

+0

Danke, froh, dass es geholfen hat! Bitte als korrekt markieren. – ggdx

+0

Vielen Dank für die Hilfe und andere Leute, ich wähle am besten mit kleinen und sauberen Code. – Opsional

6

Sie könnten die cartesian product mit verschachtelten Schleifen als Ergebnis erstellen.

var category = ['Jacket', 'Bags'], 
 
    subcategory = ['Woman', 'Men', 'Kids'], 
 
    result = category.reduce(function (r, a) {   // use an accumulator and item 
 
     return r.concat(subcategory.map(function (b) { // concat result of mapped subs 
 
      return [a, b].join(' ');     // build string with given items 
 
     })); 
 
    }, []);           // take array as accumulator 
 

 
console.log(result);

ES6

var category = ['Jacket', 'Bags'], 
 
    subcategory = ['Woman', 'Men', 'Kids'], 
 
    result = category.reduce((r, a) => r.concat(subcategory.map(b => [a, b].join(' '))), []); 
 

 
console.log(result);

+0

können Sie eine kurze Erklärung zu jeder Zeile hinzufügen. Sie sind wirklich gern Array Ich sehe immer Ihre Antwort mit Arrays :) – guradio

+0

@ furadio, ich mag Arrays :-) –

+0

Erklärung wird wirklich zukünftigen Lesern sowie Benutzern wie mir helfen. tolle Antwort wie immer Happy Coding – guradio

0

Verwendung verschachtelten for-Schleifen ein neues Array zu erstellen:

function concatArr(arr1, arr2) { 
 
    var newArr = []; 
 
    for (var a = 0; a < arr1.length; a++) { 
 
    var arr1Value = arr1[a]; 
 
    for (var b = 0; b < arr2.length; b++) { 
 
     var arr2Value = arr2[b]; 
 
     newArr.push(arr1Value + " " + arr2Value); 
 
    } 
 
    } 
 
    return newArr; 
 
} 
 
//TEST 
 
var category = ['Jacket', 'Pants']; 
 
var subcategory = ['Woman', 'Men', 'Kids']; 
 
console.log(concatArr(category, subcategory));

+0

Dies funktioniert zu. nett. – Opsional