我有数组对象。在对象中有的有shortkeys
属性,有的没有shortkeys
属性。我想将shortkeys
属性添加到所有对象。 重要的是我需要给所有对象赋予唯一的shortkeys
。如何在javascript中按递增顺序添加对象中的属性?
不具有shortkeys
将遵循这些条件下这些对象
- 如果对象没有
shortkeys
比它分配shortkeys
从1-9开始这样的“ALT + 1”,'ALT +2' ... 'ALT + 9'。 - 后
9
我需要将0
属性分配给对象。 - 然后我需要分配
a-z
像“ALT + A”,“ALT + B” - 重要我需要跳过其中已定义示例的“ALT + M”所有
shortkeys
是.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'。 – 2016-05-06 13:21:51