2016-09-28 24 views
0

我在腳本中有此代碼。 我知道結果是什麼,但不知道它究竟在做什麼。jquery - 正在使用的代碼

var str = ',' + id + ',' + name; 

names = names.map(function(value) { 
if(value.indexOf(id) > -1) { 
    return (value.indexOf('add') === 0 ? 'add' : 'edit') + str; 
} 
return value; 
}); 

if (($.inArray('edit' + str, names) == -1 && $.inArray('add' + str, names) == -1) ) { 
    names.push('edit' + str) 
} 

給我腳本的人無法發表評論。

它似乎是str是不是在數組中添加它,如果它是更新它。

任何人都可以簡要介紹一下它的實際功能。

感謝

回答

1

看起來像它尋找names陣列中明確'edit'+str'add'+str。如果兩者都不存在,則將'edit'+str添加到names陣列。

var str = ',' + id + ',' + name; 

names = names.map(function(value) { 
if(value.indexOf(id) > -1) { //if id is in value 
    return (value.indexOf('add') === 0 ? 'add' : 'edit') + str; //if value starts with 'add' then return 'add'+str, otherwise return 'edit'+str 
} 
return value; //if id not in value, return value 
}); 

if (($.inArray('edit' + str, names) == -1 && $.inArray('add' + str, names) == -1) ) { //If 'edit'+str is not in the names array AND 'add'+str is not in the names array 
    names.push('edit' + str) //add 'edit'+str to the names array 
} 
+0

非常感謝。我想試着弄清楚如何把它變成一個函數。所以我可以將'str'和'names'傳遞給該函數,以允許使用相同的代碼來測試不同數組中的相同條件。 – JeffVader