Как проверить первый символ в строке и как отправить эту строку в массив в Jquery? - PullRequest
1 голос
/ 05 июля 2011

друзья.

У меня есть массив, и он содержит некоторые строковые значения. Пример: массив name = "All_array"

Теперь я хочу проверить все значения в этом массиве на наличие первого символа строки.

если строка начинается с символа 'a', тогда переместите эту строку в массив с именем "A_array". если строка начинается с символа 'b', тогда переместите эту строку в массив с именем "B_array".

Как решить эту задачу.

Ответы [ 3 ]

2 голосов
/ 05 июля 2011
var splitArrays = {};
for(var i = 0; i < All_array.length; ++i){
    var firstChar = All_array[i].substr(0,1).toUpperCase();
    if(!splitArrays[firstChar + '_array'])
        splitArrays[firstChar + '_array'] = [];
    splitArrays[firstChar + '_array'].push(All_array[i]);
}

Это возьмет каждый элемент в All_array и поместит их в объект, содержащий массивы, проиндексированные по первой букве элементов в All_array, например:

splitArrays.A_array = ['Abcd','Anej','Aali']

и т.д ...

Вот скрипка: http://jsfiddle.net/svjJ9/

1 голос
/ 05 июля 2011

Вы можете сделать это, используя each() и charAt:

$.each(All_array,function(i,s){  
    var c = s.charAt(0).toUpperCase();                
    if(!window[c + '_array']) window[c + '_array'] = [];
    window[c + '_array'].push(s);
});
1 голос
/ 05 июля 2011

Код будет такой:

for(var i=0; i<All_array.length; i++){
   var firstChar = All_array[i].substr(0, 1).toUpperCase();
   var arrayName = firstChar + "_array";
   if(typeof(window[arrayName]) == 'undefined') window[arrayName] = []; //Create the var if it doesn't exist
   window[arrayName].push(All_array[i]);
}
A_array = []; //empty the array (cause you wanted to 'move')

Надеюсь, это поможет. Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...