Ich habe versucht, den Schlüssel von und Array von Objekten zu löschen, wenn es nicht das Gleiche ist, und ein neues Array mit Objekten zurückgeben.Nein bekomme das richtige Ergebnis
var all = [{banana: 1, rose: 2, mouse: 9, apple: 5}, {banana: 1, rock: 58, car: 19, apple: 5}, {banana: 1, red: 14, clue: 89, apple: 5}];
function differentKeys(arr){
var different_keys = [];
for (var i = 0; i < arr.length; i++) {
var tempObj = {};
for (var key in arr[i]) {
if (!arr[i][key] || arr[i][key] != arr[0][key] && i !== 0) {
tempObj[key] = arr[i][key];
different_keys.push(tempObj);
}
}
}
console.log(different_keys);
}
differentKeys(all);
Ergebnis erwartet werden:
different_keys = [{rose: 2, mouse: 9}, {rock: 58, car: 19}, {red: 14, clue: 89}];
Anfahrt:
different_keys = [{rock: 58, car: 19}, {red: 14, clue: 89}];
Sollte 'arr.push (tempObj);' eigentlich sein 'different_keys .push (tempObj); '? Momentan fügst du zusätzliche Elemente in das Quell-Array ein, während du darüber iterierst, das könnte sicherlich zu einer Endlos-Schleife führen ... – nnnnnn
@nnnnnn danke das wars. aber ich bekomme nicht: 'different_keys = [{rose: 2, mouse: 9}, {rock: 58, auto: 19}, {rot: 14, clue: 89}];' Ich bekomme: ' different_keys = [{Rock: 58, Auto: 19}, {Rot: 14, Hinweis: 89}]; ' Warum? –