Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.06.2013, 02:18
Профессор
Отправить личное сообщение для lancer Посмотреть профиль Найти все сообщения от lancer
 
Регистрация: 30.01.2008
Сообщений: 230

Имя свойства объекта в виде цифры.
Хочу создать свойства объекта, к которым бы можно было впоследствии обращаться по цифрам, т.е. чтобы имена свойств были такими 0, 1, 2.

array={}
array_lenght = 10

for(i=0, i<array_length, i++){
	array.	
}


Тут на сайте в статье все разбирается на примерах, где у свойств стринговые имена. Могут ли они быть nubmer чтобы в примере выше я мог завершить строку так array.i = i;

Если есть вариант только с конвертацией значения i в стринговый формат да и вообще не пойму будет ли верной такая запись

array.i.toString() = i;

или по другому надо?
Ответить с цитированием
  #2 (permalink)  
Старый 30.06.2013, 02:29
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

lancer,
Не проще задать имена массивом, и управлять по номеру элемента в массиве ?
либо имена - свойством объекта с value = номеру имени,
а первое свойство объекта сделать равным упорядоченному по номерам массивом остальных свойств(имён)
Ответить с цитированием
  #3 (permalink)  
Старый 30.06.2013, 02:31
Аватар для Magneto
Люмус, Емаксос Developer!
Отправить личное сообщение для Magneto Посмотреть профиль Найти все сообщения от Magneto
 
Регистрация: 06.05.2010
Сообщений: 677

Если хотите цифры - используйте массивы.
var
    arr = [];

arr[100] = '100'

alert(arr[100])


Но в объектах в качестве ключей можно использовать любые UTF-8 строки, даже пустую строку, только доступ к ним можно будет получить через [].
var
    obj = {};

obj[''] = 'Пустая строка';
obj[1] = 'Цифра';
obj['я'] = 'Русская буква Я';
obj['ↂ'] = 'Неведомая фигня';

alert(obj['']);
alert(obj[1]);
alert(obj['я']);
alert(obj['ↂ']);
Ответить с цитированием
  #4 (permalink)  
Старый 30.06.2013, 03:22
Профессор
Отправить личное сообщение для lancer Посмотреть профиль Найти все сообщения от lancer
 
Регистрация: 30.01.2008
Сообщений: 230

Ок, здесь массивы.

Цитата:
либо имена - свойством объекта с value = номеру имени,
а первое свойство объекта сделать равным упорядоченному по номерам массивом остальных свойств(имён)
Совсем не понял, можно пример?

Цитата:
Но в объектах в качестве ключей можно использовать любые UTF-8 строки
Любые UTF-8 строки. Но когда стоит цифра это уже не строка UTF-8, а цифра. В чем тогда суть определения UTF-8 строки?
Ответить с цитированием
  #5 (permalink)  
Старый 30.06.2013, 04:49
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от lancer
Совсем не понял, можно пример?
Ну удобно получить и сходу листинг имен по номеру из Первого свойства;
С другой стороны, легко по свойству получать значения
var obj={
"0001":"имя1,имя2,имя3".split(','), //Листинг Имен
"имя1":'asdasdasd',
"имя2":'vvvvvvvv',
"имя3":'dddddddd'
}

var length = obj['0001'].length;
for(var i=0;i<length; i++){
  alert(obj['0001'][i]+'='+obj[obj['0001'][i]]);
}

Последний раз редактировалось Deff, 30.06.2013 в 04:54.
Ответить с цитированием
  #6 (permalink)  
Старый 30.06.2013, 06:15
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от lancer
Любые UTF-8 строки. Но когда стоит цифра это уже не строка UTF-8, а цифра. В чем тогда суть определения UTF-8 строки?
Значение переменной автоматически приведется к строке. Пора бы уже привыкнуть к такой особенности языка.
Ответить с цитированием
  #7 (permalink)  
Старый 30.06.2013, 06:21
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Deff
Ну удобно получить и сходу листинг имен по номеру из Первого свойства;
А в чем удобство? "Листинг имен" можно получить в for in цикле. А когда нужен массив, то Object.keys (ES5)


var obj = {
    "имя1":'asdasdasd',
    "имя2":'vvvvvvvv',
    "имя3":'dddddddd'
};

// Да уж.. америку открываю...
for (var prop in obj){
    alert (prop + '=' + obj[prop]);
}

alert(Object.keys(obj));
Ответить с цитированием
  #8 (permalink)  
Старый 30.06.2013, 06:44
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

danik.js,
Из опыта говорю, где собака порылась, у мну тут объектик был на 500 т объектов - словарик стилей, так перебор и создание листинга занимал секунд несколько, а поскольку один фиг имена формируются сервером, так сформировать листинг на серве, - как два пальца, нежели перебор, да еще если значения функциями
Ответить с цитированием
  #9 (permalink)  
Старый 30.06.2013, 06:45
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

var array = {
   0: 'Ноль',
   1: 'Один',
   2: 'Два',
   9: 'Девять'
}

for(var i in array) alert(i+': '+array[i]);
Ответить с цитированием
  #10 (permalink)  
Старый 30.06.2013, 06:50
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Ruslan_xDD,
Вообщем тоже идея - но нужны тогда два объекта, если к именам привязать значения, хотя...можно конечно задать массив
var array = {
   0: ['Ноль',value0],
   1: ['Один',value1],
   2: ['Два',value2],
   9: ['Девять',value9]
}

for(var i in array) alert(i+': '+array[i][0]);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать плагин jQuery в виде объекта? SkaN jQuery 12 28.06.2012 12:31
Свойства объекта, методы и this. Почему свойство вызывается с () ? jsuse Общие вопросы Javascript 2 04.11.2011 20:39
IE 8 Не удалось получить значение свойства "match": значением объекта является null abstract Internet Explorer 2 26.08.2011 15:27
Как при чтении или записи свойства объекта вызывать функцию danik.js Общие вопросы Javascript 3 16.09.2010 17:57
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 19:00