Jedes Element dieses Arrays ist eine Zahl:
var items = Array(523,3452,334,31, ...5346);
Wie kann man einen Gegenstand durch einen neuen ersetzen?
Wir wollen zum Beispiel Folgendes ersetzen 3452
con 1010
Wie würden wir das tun?
Jedes Element dieses Arrays ist eine Zahl:
var items = Array(523,3452,334,31, ...5346);
Wie kann man einen Gegenstand durch einen neuen ersetzen?
Wir wollen zum Beispiel Folgendes ersetzen 3452
con 1010
Wie würden wir das tun?
Die unveränderliche Art, das Element in der Liste mit ES6-Spread-Operatoren und .slice
Methode.
const arr = ['fir', 'next', 'third'], item = 'next'
const nextArr = [
...arr.slice(0, arr.indexOf(item)),
'second',
...arr.slice(arr.indexOf(item) + 1)
]
Überprüfen Sie, ob das funktioniert
console.log(arr) // [ 'fir', 'next', 'third' ]
console.log(nextArr) // ['fir', 'second', 'third']
Die Ersetzung kann in einer Zeile erfolgen:
var items = Array(523, 3452, 334, 31, 5346);
items[items.map((e, i) => [i, e]).filter(e => e[1] == 3452)[0][0]] = 1010
console.log(items);
Oder erstellen Sie eine Funktion zur Wiederverwendung:
Array.prototype.replace = function(t, v) {
if (this.indexOf(t)!= -1)
this[this.map((e, i) => [i, e]).filter(e => e[1] == t)[0][0]] = v;
};
//Check
var items = Array(523, 3452, 334, 31, 5346);
items.replace(3452, 1010);
console.log(items);
var items = Array(523,3452,334,31,5346);
Wenn Sie den Wert kennen, verwenden Sie ihn,
items[items.indexOf(334)] = 1010;
Wenn Sie wissen wollen, ob ein Wert vorhanden ist oder nicht, dann verwenden Sie,
var point = items.indexOf(334);
if (point !== -1) {
items[point] = 1010;
}
Wenn Sie den Ort (die Position) kennen, verwenden Sie ihn direkt,
items[--position] = 1010;
Wenn Sie nur wenige Elemente ersetzen wollen, und Sie wissen, dass nur die Ausgangsposition zählt,
items.splice(2, 1, 1010, 1220);
für mehr über .splice
Der einfachste Weg ist die Verwendung von Bibliotheken wie underscorejs und Kartenmethode.
var items = Array(523,3452,334,31,...5346);
_.map(items, function(num) {
return (num == 3452) ? 1010 : num;
});
=> [523, 1010, 334, 31, ...5346]
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.