2010-12-14 6 views

ответ

2

Используйте массив, если вы хотите хранить коллекцию объектов одного типа и которые логически принадлежат друг другу.

Есть ли что-то конкретное, о чем вам было интересно?

Массивы полезны, когда вы хотите работать со всеми связанными элементами (циклическими), получая доступ к элементам по индексу и для сортировки.

+0

nope. Просто путают, что такое практические приложения массива против объекта. Я думаю, что этот термин называется «use-cases» ... для использования некоторого жаргона. –

0

Вы часто используете массивы, когда у вас есть серия связанных элементов, которые вы хотите упорядочить и проиндексировать.

9

Когда вам нужно зависеть от заказа элементов в коллекции, используйте Массивы, если заказ не важен, используйте объекты. Заказ не гарантируется в объектах, но они обеспечивают быстрый поиск пары ключ-значение.

7

Я использую Array [], когда я имею дело со списком объектов того же типа * (например, список строк), который я хочу иметь в порядке и Object {}, когда я имею дело с чем-то, что я хочу свойства (и свойства имеют разные типы, обычно).

Например:

var numberNames = ["one","two","three","four"]; 

var computer = { 
    motherBoard : "mother", 
    psu : psu_object(), 
    ram : { 
      ram1 : GB, 
      ram2 : TwoGB 
    } 
}; 

* Это только мое предпочтение. Массивы могут содержать элементы нескольких разных типов.

5

Они просто разные data structures, они служат для разных целей. ArrayраспространяетсяObject и предоставляет такие свойства, как length и методы, подобные push() и pop().

Подумайте об объекте как о хэш-таблице и массиве в виде списка.

E.g. вы можете использовать массивы в виде очереди или в виде стека, которые невозможен с объектами.

С другой стороны, если вы хотите сохранить данные и хотите получить доступ к определенной привязке напрямую, вы должны использовать объект.

В заключение это сводится к вопросу , структура данных которого является правильным для работы. Возможно, ни один из них не нужен, и вам понадобится дерево вместо этого (которое может быть реализовано через объекты).

3

Objects являются хорошим кандидатом, если у вас есть уникальный ключ.

Пример Array против Object:

var item = { id: '123', prop1: 456 }; 

var obj = {}, arr = []; 

// add to object 
obj[item.id] = item; 

// add to array 
arr.push(item); 

// get from object 
var got = obj[item.id]; 

// get from array 
var got; 
for(var i = 0; i < arr.length; i++) 
    if(arr[i].id == item.id){ 
     got = arr[i]; 
     break; 
    } 

Как видно найти объект гораздо дороже, с array (петли).Используя object, у вас не будет доступа ко всем вспомогательным методам array (sort/push/etc), но вы все равно можете перебирать свойства объектов с помощью цикла for...in.

2

Ключи объектов - это строки; Ключи массива - целые числа. Объектами JavaScript являются карты (String -> anything), а массивы - это списки (упорядоченные коллекции anything).

Помогло ли это?

 Смежные вопросы

  • Нет связанных вопросов^_^