2016-09-28 1 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

Похоже, он ищет конкретно 'edit'+str и 'add'+str в names массиве. Если оба нет, добавьте '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

Смежные вопросы