2016-08-05 4 views
2

Ich möchte Werte mehrerer Arrays in einem Objekt zu einem Array wie folgt fusionieren:Jquery Array Fusion

[1,2,3] 
[4,5,6] 

To:

[ 
    {name: 1, value: 4}, 
    {name: 2, value: 5}, 
    {name: 3, value: 6} 
] 
+1

Was Sie bisher versucht haben? StackOverflow ist keine "Code this for me" -Seite. –

Antwort

0

Verwenden Array#map Methode ein neues Array zu schaffen, basierend auf bestehenden.

var a = [1, 2, 3], 
 
    b = [4, 5, 6]; 
 

 
// iterate over array `a` to genearate object array 
 
var res = a.map(function(v, i) { 
 
    // generate object (result array element) 
 
    return { 
 
    name: v, // name from array `a` 
 
    value: b[i] // value from array `b` get using index 
 
    }; 
 
}) 
 

 
console.log(res);

0

Sie eine einfache for Schleife auf einem Array verwenden können und Ihr Ergebnis erstellen wie Sie wollen.

var names = [1, 2, 3], 
 
    values = [4, 5, 6], 
 
    result = []; 
 

 
for(var i = 0; i < names.length; i++) { 
 
    result.push({ 
 
     name: names[i], 
 
     value: values[i] 
 
    }); 
 
} 
 

 
console.log(result);

0
var names = [1,2,3]; 
    var values = [4,5,6]; 
    var result =[]; 

    for(var i=0;i<names.length;i++){ 
    var obj= { 
     "name":names[i], 
     "value": values[i] 
    } 
    result.push(obj); 
    } 
    console.log(result); 
+0

Ich denke, es ist keine gute Idee, ein Array auf diese Weise zu loopen! Wann immer Sie 'for ... in' verwenden, sollten Sie Folgendes beachten: http://stackoverflow.com/questions/500504/why-isusing-for-in-with-array-iteration-a-bad-idea – eisbehr

+0

Ok, ich werde es mir merken – Tuhin

+0

Wenn du es jetzt im Kopf hast, solltest du diese Antwort möglicherweise löschen, weil es generell * schlecht ist * und überall vermieden werden sollte. ;) – eisbehr

0

arr1 = [1,2,3]; 
 
arr2 = [4,5,6]; 
 

 
//prepare array to fill 
 
obj = []; 
 

 
// for every item we merge them into an object and pass them into the newObj 
 
function merge(item, index, arr2, newObj){ 
 
    temp = {}; 
 
    temp[item] = arr2[index]; 
 
    newObj.push(temp); 
 
} 
 

 
//give the item as key, the index for the second array, and the object we want to fill 
 
arr1.forEach((item, index) => merge(item, index, arr2, obj)); 
 

 
console.log(obj);

0

OR in PHP :)

<?php 
    error_reporting(E_ALL); 
    ini_set("display_errors", 1); 

    $names = array('Chevalier','Sorcier','Archer'); 
    $values = array('5','6','8'); 
    $fusion = array(); 

    for($i=0; $i<count($names); $i++){ 
     $fusion[$names[$i]] = $values[$i]; 
    } 

    echo '<pre>'; 
    print_r($names); 
    print_r($values); 
    print_r($fusion); 
    echo '</pre>'; 
?> 
+0

Während dieses Code-Snippet die Frage lösen kann, hilft [einschließlich einer Erklärung] (// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) wirklich, die Qualität Ihres Posts zu verbessern. Denken Sie daran, dass Sie die Frage für Leser in der Zukunft beantworten, und diese Leute könnten die Gründe für Ihren Codevorschlag nicht kennen. Bitte versuchen Sie auch nicht, Ihren Code mit erläuternden Kommentaren zu überladen, da dies die Lesbarkeit sowohl des Codes als auch der Erklärungen verringert! – FrankerZ