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}
]
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}
]
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);
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);
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);
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
Ok, ich werde es mir merken – Tuhin
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
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);
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>';
?>
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
Was Sie bisher versucht haben? StackOverflow ist keine "Code this for me" -Seite. –