Установка ключей массива объектов

0

Я строю массив объектов в JS, это моя структура:

$("li.user_task").each(function() {
    tasks.push({
        taskid: $(this).data("taskid"),
        productid: $(this).data("product-id"),
        productposition: $(this).data("product-position")
    });
});

Это хорошо работает, мой вывод на console.log():

[Object, Object, Object, Object]
0: Object
productid: 2
productposition: 1
taskid: 150
__proto__: Object
1: Object
productid: 1
productposition: 1
taskid: 151
__proto__: Object
2: Object
productid: 2
productposition: 2
taskid: 155
__proto__: Object
3: Object
productid: 1
productposition: 3
taskid: 157
__proto__: Object
length: 4
__proto__: Array[0]

Я не хочу, чтобы мои ключи начинались с 0, хотя в этом примере мне действительно хотелось бы, чтобы поле "taskid" являлось ключом к объекту, как я мог достичь этого?

Теги:

1 ответ

1
Лучший ответ

это должно работать

 $("li.user_task").each(function() {
  tasks[$(this).data("taskid")]=({
     taskid: $(this).data("taskid"),
     productid: $(this).data("product-id"),
     productposition: $(this).data("product-position")
 });
});

если только ваш taskid не уникален.

и да как @Бернхард упомянул... с целыми числами в качестве ключа массива.. длина массива отличается....

  • 3
    Это не хорошо ... попробуйте это: var test = []; test [150] = {}; console.log (тест); Тогда вы знаете, в чем проблема с этим
  • 0
    @ Бернхард .. да! обновлено .. ура

Ещё вопросы

Сообщество Overcoder
Наверх
Меню