Как передать в массив перемеенную как ключ массива?
Подскажите пожалуйста как подставить в массив значение переменной как ключ массива
есть переменная var type = value1 есть массив
var custom = {
key: {
label: test
}
};
как type подставить на место key? |
custom[type].label |
мне нужно чтобы вот так было, такая конструкция будет работать?
var custom = {
custom[type]: {
label: test
}
};
пробую, что-то не работает... |
К сожалению, здесь не запускается...
var custom = {
key: {
label: "test"
}
};
var type = 33;
function getVal(val) {
for(var name in window) {
if(window[name]==val) {
return name;
}
}
}
custom = JSON.parse('{"' + getVal(type) + '":' + JSON.stringify(custom.key) + '}');
alert(JSON.stringify(custom));
|
Цитата:
var custom = {};
var type = 'value1';
custom[type]={
label: 'test'
}
alert(JSON.stringify(custom));
|
Цитата:
|
Цитата:
|
ksa,
{"value1":{"label":"test"}} - это не совсем тот результат, просили {"type":{"label":"test"}} где type - не просто так, а имя переменной. |
Цитата:
|
Цитата:
var custom = {};
var type = 'type';
custom[type]={
label: 'test'
}
alert(JSON.stringify(custom));
|
Ну и пафосный es6:
var type = 'type';
var custom = {
[type]:{
label: 'test'
}
};
alert(JSON.stringify(custom));
|
ksa,
Ну в этом случае это только имитация результата по значению переменной, а не по имени - с таким же успехом можно было бы и просто написать
var custom = {
key: {
label: "test"
}
};
custom = {
type: {
label: "test"
}
};
alert(JSON.stringify(custom));
|
Цитата:
Вариантов ему показали валом! :D |
Конечно, это какие-то непонятные танцы с бубном с невнятной целью, так что вся моя предыдущая критика весьма сомнительна:-E
Возможно, наиболее корректный - в данной ситуации - вариант замены ключа с сохранением значения
var custom = {
key: {
label: "test"
}
};
custom = JSON.parse('{"type":' + JSON.stringify(custom.key) + '}');
alert(JSON.stringify(custom));
|
Да, кажись дошло, что он хотел:) :
var type = "value1";
var custom = {
key: {
label: "test"
}
};
custom[type] = custom.key;
delete custom.key;
alert(JSON.stringify(custom,0,'\t'));
|
Aetae,
:victory: |
| Часовой пояс GMT +3, время: 09:03. |