Как получить индекс через $.each?

Как еще через $.each можно получить индекс без этого let i = 0; и i++; ?

let obj = {
  423: 123,
  433: 2354,
  653: 345,
  783: 534534,
};

let i = 0;
$.each(obj, function(k, v) {
  console.log(i, k, v);
  i++;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


Ответы (1 шт):

Автор решения: DiD

Есть отличный метод Object.entries().

Работает он приблизительно так:

let obj = {
  423: 123,
  433: 2354,
  653: 345,
  783: 534534,
};
console.log(obj);    
console.log(Object.entries(obj));

Для вашего случая:

let obj = {
  423: 123,
  433: 2354,
  653: 345,
  783: 534534,
};

$.each(Object.entries(obj), function(i, [k, v]) { // здесь первый
                                                  // параметр i,
                                                  // а второй [k,v]
                                                  // (деструкторизация)
  console.log(i, k, v);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Кстати говоря, есть и обратный метод Object.fromEntries().

let obj = [
  ["423",123],
  ["433",2354],
  ["653",345],
  ["783",534534]
];
console.log(obj);    
console.log(Object.fromEntries(obj));

→ Ссылка