Ключом ассоциативного массива может быть любая строка, которая ассоциируется с конкретным элементом массива. Например, для массива:
var man = {
lastname: "Иванов",
firstname: "Василий",
middlename: "Петрович"
}
man - имя переменной, lastname, firstname и middlename - ключи массива
Иванов, Василий, Петрович - значения элементов массива
По ключу можно обратиться к конкретному элементу.
Более подробно узнать про ассоциативные массивы, объекты и ООП вы можете в разделе учебника: Объекты, ООП.
непонятно что такое "ключ ассоциативного массива"
Ключом ассоциативного массива может быть любая строка, которая ассоциируется с конкретным элементом массова. Например, для массива:
var man = {
lastname: "Иванов",
firstname: "Василий",
middlename: "Петрович"
}
man - имя массива
lastname, firstname и middlename - ключи массива
Иванов, Василий, Петрович - значения элементов массива
По ключу можно обратиться к конкретному элементу.
А я вот одного не пойму... Как понимаю хэш в любом случае передается по ссылке, а не копируется. Вот к примеру код:
var h = { 'name': 'petrov' }; var foo = function (param) { var newH = param; newH.name = 'sidorov'; alert(newH.name); // Выдаст 'sidorov' }(h); alert(h.name); // Тоже 'sidorov'!!И вопрос. Как "отцепть" хэш в данном примере? Как сделать копию, чтобы вторым алертом выдавался "petrov"?
Пардон, разобрался уже сам
var h = { 'name': 'petrov' }; var foo = function (param) { var newH = {'name': param.name} newH.name = 'sidorov'; alert(newH.name); // Выдаст 'sidorov' }(h); alert(h.name); // Выдаст 'petrov'а как мне многомерный массив создать тогда таким образом ??
// 3 в ширину 3 в высоту
// каждый подмассив - колонка
var matrix = [ [1,2,3], [4,5,6], [7,8,9] ]
alert(matrix[1][1]) // 5
ищи в справочнике Массивы
А многомерный ассоциативный массив?)
В JS нет полноценных ассоциативных массивов. Но в качестве их можно использовать объекты.
А пример можно увидеть?
abc={a:{a1:1,a2:2,a3:3},b:{b1:1,b2:2,b3:3},c:{c1:1,c2:2,c3:3}}; alert(abc.a.a2+abc.b.b3-abc.c.c1);var arr = {}; arr['d1'] = "Hello"; arr['d0'] = "Example"; arr['d2'] = {}; arr['d2']['value'] = "world"; alert(arr['d0'] + ': ' + arr['d1'] + ', ' + arr['d2']['value'] + '!')Почему не работает код
?
А так работает
var obj = {} obj.name = "test";Пишет ошибку
Test is not defined
в строке
var obj = new Test();
И правильно пишет.
Так как объект "Test" не определен.
Если надо чтоб был именно "Test", пишите так.
var Test = function(){}; var obj = new Test(); obj.name = 'test';Не описан метод создания Object через function() :|
Как вывести и получить все значения объекта?
function return(ms,mo){ var ob = {}; for(var i=0; mo.length>i; i++){ ob["mo[i]"] = {}; for(var j=0; ms.length>j; j++){ ob["mo[i]"]["ms[j]"] = "значение"; } } return ob; }Загружаю в функцию два массива. Создаю из них объект, теперь мне надо вывести эти объекты в строку.
function write(obj) { var s='' for(var x in obj) { s+=obj[x]+' ' } return s }Отправить комментарий
Приветствуются комментарии:- Полезные.
- Дополняющие прочитанное.
- Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.Для остальных вопросов и обсуждений есть форум.