Вопрос по javascript – Как вставить ассоциативный элемент в массив в JavaScript?

48

Пожалуйста, исправьте этот код:

var arr = [];
var name = "name";
var val = 2;
arr.push(val); //works , but not associative
arr[name] = val; //does not work
console.log(arr);

jsfiddle

Он присваивает val ключу «name», но в JS: console.log (arr.name); SoEzPz

Ваш Ответ

3   ответа
21

JavaScript не имеет ассоциированных массивов. Вам нужно использовать объекты вместо:

var obj = {};
var name = "name";
var val = 2;
obj[name] = val;
console.log(obj);​

Чтобы получить значение, вы можете использовать различные способы:

console.log(obj.name);​
console.log(obj[name]);​
console.log(obj["name"]);​
Error: User Rate Limit Exceeded
98

Сделать что-то вродеассоциативный массив в JavaScript Вы должны использовать объекты. & # X200B;

var arr = {}; // {} will create an object
var name = "name";
var val = 2;
arr[name] = val;
console.log(arr);​

DEMO: http://jsfiddle.net/bz8pK/1/

Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededarrError: User Rate Limit ExceededobjError: User Rate Limit Exceeded
7

Javascripthas ассоциативные массивы. Вот рабочий фрагмент.

<script type="text/javascript">
  var myArray = [];
  myArray['thank'] = 'you';
  myArray['no'] = 'problem';
  console.log(myArray);
</script>

Они просто называются объектами.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededconsole.log(typeof myArray);Error: User Rate Limit ExceededlengthError: User Rate Limit Exceededconsole.log(myArray.length);Error: User Rate Limit Exceeded0Error: User Rate Limit ExceededmyArray[0] = 'see';Error: User Rate Limit Exceeded1.
Error: User Rate Limit Exceededw3schools.com/jsref/jsref_obj_array.aspError: User Rate Limit Exceeded

Похожие вопросы