Не могу понять почему не работает код
В общем задача из codewars.com , развернуть предложение в зависимости от цифр встречающихся в cловах, пытаюсь получить нужный массив, в консоли undefined
function order(words){
var arr=words.split(" ");
var new_arr=[];
for(var i=0;i<arr.length;i++){
for(var j=0;j<=9;j++){
if(arr[i].indexOf(j)>-1){
new_arr[i]=arr[arr[j]];
console.log(arr[arr[j]])//вот эта строчка становится undefined
}
}
}
}
order("world2 Hello1");
|
Цитата:
Может arr[i][j]? |
Часто используют встроенную функцию .sort() если речь идет о сортировках.
Примерно так:
function sord(a,b){
return a.substr(-1) - b.substr(-1);//сравнение цифр в конце строк
}
function words(str){
let s = str.split(' ');//string->array
s = s.sort(sord);//sorting array
console.log( s );//Independent
}
words('Democracy3 Is4 Coming5 Open1 Up2');
|
Через цикл (i -> j):
if (arr[j].indexOf(i) != -1)
result.push(arr[j])
Через sort: arr.sort((a, b) => a.match(/\d+/) - b.match(/\d+/)) |
| Часовой пояс GMT +3, время: 15:55. |