J'ai un objet existant,
for(let x in this.data) {
if(x.includes('.keyword')) {
let xy = x.replace(/.keyword/g, "");
console.log(xy);
}
}
Ce que j'essaye de faire est de vérifier chaque clé et si la clé a .keyword alors j'essaye de le supprimer et de le créer sans .keyword . Je ne sais pas comment renommer et pousser vers un objet existant.
ce que j'ai essayé jusqu'à présent,
this.data = {
"part": "aircraft",
"subid": "wing",
"information.data.keyword": "test",
"fuel.keyword": "lt(6)"
}
4 Réponses :
Vous pouvez essayer de copier / cloner l'objet, l'ajouter à this.data, puis supprimer la version avec .keyword.
Vous devez d'abord créer une nouvelle clé. Après avoir attribué une valeur à la clé nouvellement créée, vous devez supprimer l'ancienne.
Essayez ceci:
this.data = {
"part": "aircraft",
"subid": "wing",
"information.data.keyword": "test",
"fuel.keyword": "lt(6)"
}
for (let x in this.data) {
if (x.includes('.keyword')) {
this.data[x.replace(/.keyword/g, "")] = this.data[x];
delete this.data[x];
}
}
console.log(this.data)
Essayez ceci
let data = {
"part": "aircraft",
"subid": "wing",
"information.data.keyword": "test",
"fuel.keyword": "lt(6)"
}
Object.keys(data).forEach((x) => {
if (x.includes('.keyword')) {
this.data[x.replace(/.keyword/g, "")] = data[x];
delete data[x]
}
});
console.log(data)
Vous avez déjà utilisé includes () et replace () . Il suffit de supprimer l'objet en utilisant l'opérateur delete comme @Andreas mentionné et créer une nouvelle entrée.
for(var k in data) {
if (k.includes(".keyword")) {
var newKey = k.replace(/.keyword/g, "");// New key for new entry without .keyword
data[newKey] = data[k]; //Creating new entry
delete(data[k]); //Deleting old entry
}
}
La solution est déjà dans la question: "... le supprimer et le créer ..." - developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/ …