У меня есть массив объектов. В объектах есть shortkeys
и некоторые из них не имеют shortkeys
. Я хочу добавить свойство shortkeys
ко всем объектам. Важно то, что мне нужно дать уникальный shortkeys
всем объектам.Как добавить свойство в объект в порядке возрастания в javascript?
Тех объекты, которые не имеют shortkeys
будет следовать этим условиям
- если объект не
shortkeys
чем назначатьshortkeys
начиная с 1-9 как этим «Alt +-», 'альт +2' ... 'альт + 9'. - После
9
Мне нужно присвоить объекту объект0
. - Тогда мне нужно назначить
a-z
как этот «Alt + A», «Alt + B» - Важно мне нужно пропустить все
shortkeys
, который уже определен пример «Alt + M» .so, что каждый объект обладает уникальным свойством ,
Вот мой код https://jsfiddle.net/krzz9zmf/
var arr=[
{name:"abc",shortkeys:"alt+m"},
{name:"c_1"},
{name:"abc",shortkeys:"alt+t"},
{name:"abc",shortkeys:"alt+c"},
{name:"wes_2"},
{name:"ncv_3"},
{name:"sghb_4"},
{name:"ijo_5"},
{name:"nhio_6"},
{name:"jion_7"},
{name:"chudoi_8"},
{name:"bdmki_9"},
{name:"dssd_0"},
{name:"sdfs_a"},
{name:"abc",shortkeys:"alt+y"},
{name:"abc",shortkeys:"alt+e"},
{name:"sghb_b"},
{name:"ijo_d"},
{name:"gsha_e"},
{name:"asdas_f"},
{name:"bbb_g"},
{name:"mko_h"},
{name:"kioh_i"},
{name:"qwee_j"},
{name:"qwee_k"},
{name:"qwee_l"},
{name:"qwee_n"},
]
var j =1;
for(var i=0;i<arr.length;i++){
var obj =arr[i];
if (!'shortkeys' in myObj){
//add shorkeys start from 1-9 then 0 and then a-z.In other words need to assign shortcut key like that 'alt+1','alt+2'....'alt+0'''alt+a','alt+b'...'alt+z';
//some of the objects already define shortkeys example 'alt+m' .so I need to skip these shortcut key .so that each item have unique shortcut.
myObj.shortkeys= 'alt+'+j;
j++;
if(j==10){
j=0
}
if(j==1){
myObj.shortkeys='alt+a';
}
}
}
Ожидаемый результат
[
{name:"abc",shortkeys:"alt+m"},
{name:"c_1",,shortkeys:"alt+1"},
{name:"abc",shortkeys:"alt+t"},
{name:"abc",shortkeys:"alt+c"},
{name:"wes_2",shortkeys:"alt+2"},
{name:"ncv_3",,shortkeys:"alt+3"},
{name:"sghb_4",shortkeys:"alt+4"},
{name:"ijo_5",shortkeys:"alt+5"},
{name:"nhio_6",shortkeys:"alt+6"},
{name:"jion_7",shortkeys:"alt+7"},
{name:"chudoi_8",shortkeys:"alt+8"},
{name:"bdmki_9",shortkeys:"alt+9"},
{name:"dssd_0",shortkeys:"alt+0"},
{name:"sdfs_a",shortkeys:"alt+a"},
{name:"abc",shortkeys:"alt+y"},
{name:"abc",shortkeys:"alt+e"},
{name:"sghb_b",shortkeys:"alt+b"},
{name:"ijo_d",shortkeys:"alt+d"},
{name:"gsha_e",shortkeys:"alt+e"},
{name:"asdas_f",shortkeys:"alt+f"},
{name:"bbb_g",shortkeys:"alt+g"},
{name:"mko_h",shortkeys:"alt+h"},
{name:"kioh_i",shortkeys:"alt+i"},
{name:"qwee_j",shortkeys:"alt+j"},
{name:"qwee_k",shortkeys:"alt+k"},
{name:"qwee_l",shortkeys:"alt+l"},
{name:"qwee_n",shortkeys:"alt+n"},
]
Просто интересно, что после того, как 'Alt + z'? –
Я не уверен, что вы действительно приложили некоторые усилия к тому, что вы сделали (я надеюсь, что вы это сделали), но есть так много ошибок и недостающих частей, что я не могу притворяться, что трачу на это слишком много времени. Вот рабочее решение (из вашей скрипки): https://jsfiddle.net/krzz9zmf/2/. Обратите внимание, что вы не проверяли правильность и не заменяли значения и даже не ссылались на правую переменную (проверьте свою консоль **, она говорит вам, что что-то не получается **). Вы ссылались на myObj вместо obj. (Я даже не проверял, что все результаты верны, потому что логика отсутствует, это лучшее, что я могу сделать) – briosheje
Вы не сказали, каков ваш вопрос на самом деле, но ваш код имеет «var obj», но затем вместо этого вы используете 'myObj'. –