как перезаписать значение ключей в объекте JS &

81
25 апреля 2021, 20:50

Есть два объекта:

let obj1 =  {
    "txt": false,
    "log": false,
    "ini": false,
    "com": false
  }
let obj2 =  {
    "1": true,
    "2": false,
    "3": true,
    "4": false
  }

Как можно сделать чтоб по порядку перезаписались значения из obj2 в obj1? Тоесть мне нужно чтоб после выполнения функции стало:

 let obj1 =  {
    "txt": true,
    "log": false,
    "ini": true,
    "com": false
  }

Если не поможете с решением, будьте добры, подскажите где об этом можно почитать.

Answer 1

Если верить ресурсу Learn JavaScript, то если имя свойства – нечисловая строка, то такие ключи всегда перебираются в том же порядке, в каком присваивались.

У вас во втором объекте используется ключ в виде числа, то лучше использоваться массив, или просто начинаться отчет от 1.

let obj1 =  { 
  "txt": false, 
  "log": false, 
  "ini": false, 
  "com": false 
}; 
 
let obj2 =  { 
  "1": true, 
  "2": false, 
  "3": true, 
  "4": false 
}; 
 
function merge(target, obj) { 
  let i = 1; 
 
  for(let key in target) { 
    target[key] = obj[i++]; 
  } 
} 
 
merge(obj1, obj2); 
 
console.log(obj1);

В каком порядке перебираются свойства?

READ ALSO
Из консоли без кавычек

Из консоли без кавычек

Все доброго дня

78
Запретить масштабирование windows для вебсайта

Запретить масштабирование windows для вебсайта

Есть горизонтальный сайт, и если у пользователя выбрано масштабирование в windows то он едет вниз, можно ли запретить масштабировать сайт несмотря...

89
Браузер падает при большом количестве запросов к серверу

Браузер падает при большом количестве запросов к серверу

Как сделать, чтобы браузер не падал при arr, состоящим из 18000 7-ми символьных строк? Например, дожидался, пока придёт одна пачка из 20 запросов,...

70
JavaScript: функция передаётся по ссылке или по значению?

JavaScript: функция передаётся по ссылке или по значению?

Нигде не нашел однозначного ответа на этот вопрос

114