444 Stimmen

Wie ändert man den Wert eines Objekts, das sich innerhalb eines Arrays befindet, mit JavaScript oder jQuery?

Der folgende Code stammt aus jQuery UI Autocomplete:

var projects = [
    {
        value: "jquery",
        label: "jQuery",
        desc: "the write less, do more, JavaScript library",
        icon: "jquery_32x32.png"
    },
    {
        value: "jquery-ui",
        label: "jQuery UI",
        desc: "the official user interface library for jQuery",
        icon: "jqueryui_32x32.png"
    },
    {
        value: "sizzlejs",
        label: "Sizzle JS",
        desc: "a pure-JavaScript CSS selector engine",
        icon: "sizzlejs_32x32.png"
    }
];

Ich möchte zum Beispiel die desc Wert von jquery-ui . Wie kann ich das tun?

Gibt es außerdem eine schnellere Möglichkeit, die Daten zu erhalten? Ich meine, geben Sie dem Objekt einen Namen, um seine Daten zu holen, genau wie das Objekt innerhalb eines Arrays? Es wäre also etwas wie jquery-ui.jquery-ui.desc = ....

19voto

elasticrash Punkte 1141

Sie müssen den Index des zu ändernden Objekts kennen. Dann ist es ganz einfach

projects[1].desc= "new string";

19voto

Mohammadreza Punkte 101
const users = [
  { name: "Alex", age: 25 },
  { name: "John", age: 32 },
];

const newUsers = users.map((user) => ({
  ...user,
  age: user.age + 5, // just for example
}));

// newUsers = [
// {name:"Alex" , age:30},
// {name:"John , age:37}
// ]

13voto

tsadkan yitbarek Punkte 1266

Ich denke, dieser Weg ist besser

const index = projects.findIndex(project => project.value==='jquery-ui');
projects[index].desc = "updated desc";

8voto

mwangaben Punkte 819
let users = [
    {id: 1, name: 'Benedict'},
    {id: 2, name: 'Myles'},
    {id: 3, name: 'Happy'},
]

 users.map((user, index) => {
 if(user.id === 1){
  users[index] = {id: 1, name: 'Baba Benny'};    
 }

 return user
})

console.log(users)

Was dieser Code tut, ist das Objekt zuzuordnen und dann die gewünschte mit if-Anweisung ,

if(user.id === 1) 

wenn es irgendwo eine Übereinstimmung gibt, verwenden Sie den Index, um zu tauschen

 users[index] = {id: 1, name: 'Baba Benny'};

das Objekt im Array und geben dann das geänderte Array zurück

5voto

MD SHAYON Punkte 6992

Ändern Sie den Wert mit den Bedingungen in der for each-Schleife

projects.forEach((p,index)=>{
    if(index === 1){
       p.value = "Updated jquery-ui"
    }
})

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