Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не могу понять почему не работает код (https://javascript.ru/forum/misc/71490-ne-mogu-ponyat-pochemu-ne-rabotaet-kod.html)

djamali 22.11.2017 18:41

Не могу понять почему не работает код
 
В общем задача из 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");

ruslan_mart 22.11.2017 19:34

Цитата:

Сообщение от djamali
arr[arr[j]]

Это как?

Может arr[i][j]?

join 23.11.2017 05:18

Часто используют встроенную функцию .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');

jerseybb 23.11.2017 10:44

Через цикл (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, время: 05:04.