オブジェクトの配列があります。オブジェクトにはshortkeys
プロパティがあり、一部にはshortkeys
プロパティがありません。すべてのオブジェクトにshortkeys
プロパティを追加したいと思います。 重要なことは、すべてのオブジェクトにユニークなshortkeys
を付ける必要があるということです。これらの条件に従いますshortkeys
を持っていないjavascriptでオブジェクトのプロパティを昇順に追加する方法は?
これらのオブジェクト
- それは「ALT + 1」、 'ALTよう1-9から始まる
shortkeys
を割り当てるよりも、オブジェクトがshortkeys
を持っていない場合+2 '...' alt + 9 'を押します。 9
の後にオブジェクトに0
プロパティを割り当てる必要があります。- その後、私は、私はすでに定義されているすべての
shortkeys
例に「Alt + M」をスキップする必要がある重要 - に「Alt + b」が、それに「Alt + A」のような
a-z
を割り当てる必要がありますが、すべてのオブジェクトは、ユニークな特性を持っていることの.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"},
]
にマップするので、手動で値の配列を作成する必要はありませんか? –
あなたがしたことに本当に力を入れているのかどうかはわかりませんが(私がやりたがっていると思いますが)、エラーや欠けている部分がたくさんあります。ここでは、(あなたのフィドルからの)実用的な解決策です:https://jsfiddle.net/krzz9zmf/2/。あなたが正しくチェックしておらず、値を置き換えず、正しい変数を参照していない(コンソールを確認してください。あなたはobjの代わりにmyObjを参照していました。 (論理がないのですべての結果が正しいことを確認していない、これは私ができる最高です) – briosheje
あなたの質問は実際には何も言わなかったが、あなたのコードは 'var obj'を持っていますが、代わりに 'myObj'を使います。 –