Oto obiekt

var someObject = {
    value1: 'nothing',
    value2: 'nothing',
    ...
}

Oto tablica

var someArray = [someObject.value1, someObject.value2, ...]

Oto problem

forEach(var i in someArray){
    //How would I update someObject.value1 here
    someArray[i] = 'something'
}
//so that this would be 'something'
var someVar = SomeObject.value1

Edytuj: To rozwiązanie działało dla moich potrzeb

someObject: same

someArray = ['value1', 'value2']

forEach(var i in someArray){
    someObject[someArray[i] = 'something'
}

console.log(someObject.value1) //something
1
TJ TJ 4 wrzesień 2017, 16:32

2 odpowiedzi

Najlepsza odpowiedź

W someArray masz odniesienia do prymitywnych wartości, a nie do obiektów.

Możesz zapisać klucze obiektu someObject i użyj ich, aby zaktualizować obiekt.

var someObject = { value1: 'nothing', value2: 'nothing' },
    someArray = ['value1', 'value2'];                      // keys

someArray.forEach(k => someObject[k] = 'something');       // update with keys

console.log(someObject);
2
Nina Scholz 4 wrzesień 2017, 13:43

Myślę, że próbujesz zaktualizować obiekt (SomeObject) za pomocą tablicy (SomeeAray). Jeśli tak jest, nie musisz, ponieważ można płynąć bezpośrednio obiekt:

for(key in someObject){
  someObject[key] = 'something'
}
0
Nderim 4 wrzesień 2017, 13:39