603 Stimmen

Wie kann man ein Element in einem Array ersetzen?

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?

37voto

Goms Punkte 2194

Erste Methode

Beste Möglichkeit, in nur einer Zeile ein Element eines Arrays zu ersetzen oder zu aktualisieren

array.splice(array.indexOf(valueToReplace), 1, newValue)

Beispiel:

let items = ['JS', 'PHP', 'RUBY'];

let replacedItem = items.splice(items.indexOf('RUBY'), 1, 'PYTHON')

console.log(replacedItem) //['RUBY']
console.log(items) //['JS', 'PHP', 'PYTHON']

Zweite Methode

Eine andere einfache Möglichkeit, den gleichen Vorgang auszuführen, ist :

items[items.indexOf(oldValue)] = newValue

31voto

mellamokb Punkte 55046

Leicht zu bewerkstelligen mit einer for Schleife.

for (var i = 0; i < items.length; i++)
    if (items[i] == 3452)
        items[i] = 1010;

26voto

Yatrix Punkte 12707

Wenn Sie ein komplexes Objekt (oder sogar ein einfaches) verwenden, können Sie es6 verwenden, Array.prototype.findIndex ist ein gutes Beispiel. Für die OP's Array, könnten sie tun,

const index = items.findIndex(x => x === 3452)
items[index] = 1010

Bei komplexeren Objekten kommt dies besonders gut zur Geltung. Zum Beispiel,

const index = 
    items.findIndex(
       x => x.jerseyNumber === 9 && x.school === 'Ohio State'
    )

items[index].lastName = 'Utah'
items[index].firstName = 'Johnny'

20voto

VirtualTroll Punkte 3007

Sie können eine beliebige Zahl der Liste mit Hilfe von Indizes bearbeiten

zum Beispiel :

items[0] = 5;
items[5] = 100;

19voto

AmerllicA Punkte 22941

ES6 Weise:

const items = Array(523, 3452, 334, 31, ...5346);

Wir wollen ersetzen 3452 con 1010 , Lösung:

const newItems = items.map(item => item === 3452 ? 1010 : item);

Sicherlich ist die Frage schon viele Jahre alt, und im Moment ziehe ich es vor, einfach die unveränderlich Lösung ist auf jeden Fall großartig für ReactJS .

Für die häufige Nutzung biete ich folgende Funktion an:

const itemReplacer = (array, oldItem, newItem) =>
  array.map(item => item === oldItem ? newItem : item);

CodeJaeger.com

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.

Powered by:

X