В моем скрипте функция использует значения в моем массиве teststim.
var teststim = ["A", "B", "C"]
И я хочу дать "атрибуты" этим значениям, так что, например, A имеет атрибут "имя", "день рождения",...
Мне нужно найти способ доступа к этим атрибутам. Я подумал о чем-то вроде этого:
var teststim = {content: "A", attribute: "name"},
{content: "B", attribute: "birthday"},
{content: "C", attribute: "whatever"}
Возможно, я близка, чем я думаю, но я не могу получить доступ к значениям атрибута, соответствующим значениям содержимого. Что мне не хватает?
Вам нужен массив объектов:
var teststim = [{content: "A", attribute: "name"},
{content: "B", attribute: "birthday"},
{content: "C", attribute: "whatever"}];
for (var i=0; i<teststim.length; i++) {
var obj = teststim[i];
if (obj.content=='C') {
alert(obj.attribute); // "whatever"
};
};
Вы не можете давать свойства/атрибуты значениям ВАШЕГО массива. Поэтому вы должны начать с:
var arr = [
{content:'A'},
{content:'B'},
{content:'C'}
];
Теперь вы можете добавить новые атрибуты, например:
arr[0].attribute = '2';
Если вы хотите сопоставить значение в массиве с другим (более длинным?) Значением, вы можете использовать:
var mapping = {"A" : "name",
"B" : "birthday",
"C" : "whatever"}
for(var i = 0, len = teststim.length; i < len; i++)
{
alert(mapping[teststim[i]]);
}
Если нет, то просто иметь массив объектов:
var teststim = [{ 'content' : "A", 'attribute' : "name" },
{ 'content' : "B", 'attribute' : "birthday" },
{ 'content' : "C", 'attribute' : "whatever" }];
for(var i = 0, len = teststim.length; i < len; i++)
{
alert(teststim[i].attribute);
}
attribute
?