В чем разница между объектами и ассоциированным массивом в javascript?

Запутанное обсуждение

В этом вопросе обсуждается концепция ассоциированного массива и объекта в javaScript, в которой я немного запутался.

В этом примере кода:

var check = {
  pattern : {
    name: /^[a-zA-Z-\s]{1,20}$/,
    email: /^[a-zA-Z0-9._(-)]+@[a-zA-Z0-9.(-)]+\.[a-zA-Z]{1,4}$/,
    pass: /.{6,40}/,
    url:  /^[(-)\w&:\/\.=\?,#+]{1,}$/,
    aml:  /<(.+)_([a-z]){1}>$/
    }
};

Вот обсуждение, которое меня смущает:

@steven.yang внешний объект не является ассоциативным массивом в вашем примере, но это то, о чем спрашивают

@sissonb что вы имеете в виду под "внешний объект не является ассоциативным массивом"? Я думаю, что ассоциативный массив выражается как объект в javascript. Разница в обозначениях - либо через foo.bar, либо через foo[bar]

@steven.yang ассоциированный массив означает ключ => значение. http://en.wikipedia.org/wiki/Associative_array Ваш внутренний объект имеет ключ pattern, объект, содержащий этот ассоциативный массив, не имеет ключа.

Мое понимание ассоциированного массива и объектов в JS

Ассоциированный массив определяется как пары ключ-значение, которые выражаются как объект в JavaScript.

Внешний объект, назначенный для проверки, имеет ключ pattern и значение другого объекта. Внутренний объект имеет ключи name, email ... и соответствующие значения объектов регулярных выражений.

Можно ли считать оба объекта ассоциативными массивами?

8
задан Community 23 May 2017 в 12:17
поделиться