Проблемы с ассоциативным массивом Javascript

#javascript

#javascript

Вопрос:

у меня есть функция

 var myarr[] =new Object();
  function myfunction(id,msg)
 {
    myarr[id,msg]
 }
  

Я пытаюсь добавить сообщение с идентификатором в качестве ключа…но это не работает…пожалуйста, помогите

Комментарии:

1. var myarr=[]; и myarr[id]= сообщение;

2. Спасибо giys…it сработанные фигурные скобки с моим arr были опечаткой

Ответ №1:

Синтаксис:

Объявление myarr:

 myarr = {};
  

Добавление элемента:

 myarr[id] = msg;
  

Комментарии:

1. Можете ли вы сказать мне, как его отсортировать … на основе идентификатора, который является строкой, а не int??

2. @abbas: Вы не можете сортировать свойства объекта, они неупорядочены. Я предлагаю вам прочитать руководство по MDN JavaScript и ознакомиться с разницей между массивами и объектами.

Ответ №2:

JavaScript — это не Java.

Следующая функция создаст массив, состоящий из объектов.

 var myarr = []; //Or: var myarr = {};
function myfunction(id, msg) {
    var obj = {};    //Create object
    obj[id] = msg;   //Set property with key=id, with value=msg
    myarr.push(obj); //Use `push` method of the array to insert object in an array
}
  

Если вы хотите создать отдельный объект и задать свойства, используя key=id и value=msg, используйте:

 var myarr = {};
function myfunction(id, msg){
    myarr[id] = msg;
}
  

Ответ №3:

Я думаю, ты имеешь в виду:

 function myfunction(id,msg)
 {
    myarr[id] = msg;
 }
  

Ответ №4:

Во-первых, вы не включили скобки [] при объявлении переменной как массива или объекта в JavaScript.

 var myarr = new Object();
  

Во-вторых, вам нужно настроить свои назначения:

 myarr[id] = msg;
  

Ответ №5:

Вы неправильно понимаете, как создавать ассоциативные массивы. Вот jsfiddle с правильной функциональностью.

http://jsfiddle.net/qRuWz/