|
Задачи по JavaScript
Реализуйте алгоритм, проверяющий если элемент матрицы MxN равен 0, тогда всем элементам данной строки и колонки присвоить 0.
var arr = [[1,2,3,4], [5,0,7,8], [8,9,10,11]]; моё решение: var arr = [[1,2,3,4], [5,0,7,8], [8,9,10,11]]; var vertical = 0; var gorizont = 0; //Циклы в которых мы находим 0 по вертикале и горизонтали for (var i = 0; i < arr.length; ++i) { for (var j = 0; j < arr[i].length; ++j) { if(arr[i][j] == 0) { vertical = j; gorizont = i; } } } for (var g = 0; g < arr[gorizont].length; ++g) { arr[gorizont][g] = 0; } for (var v = 0; v < arr.length; ++v) { for (var v2 = 0; v2 < arr[v].length; ++v2) { arr[v][vertical] = 0; } } alert ('Ноль найден в строке: ' + gorizont + "\nв индексе: " + vertical); for (var key in arr) { document.write(arr[key] + '<br>'); } ПЫ.СЫ. опыта у меня мало, возможно его можно как-то оптимизировать, жду ваших предложений, спасибо за внимание :victory: |
<script type="text/javascript"> var arr = [[1,2,3,4,5], [5,0,7,8,0], [5,6,7,8,1], [8,9,9,9,12]]; function Replacer(i,j) { for(var J in arr[i]){ arr[i][J]=0; } for(var I in arr){ arr[I][j]=0; } } TST_arr0=[]; for(var i in arr){ for(var j in arr[i]){ if(arr[i][j]==0){ TST_arr0.push([i,j]); } } } for(var i in TST_arr0){ Replacer(TST_arr0[i][0],TST_arr0[i][1]) } </script> <script> // Print var str='' for(var i in arr){ str+='['+arr[i].join(",")+']\n' } alert(str); </script> |
спасибо!;)
|
не совсем в тему, но как создать циклами массив массивов?
|
daima,
var mas = []; for (i=0; i < 10; i++) { mas[i] = []; for (j=0; j < 10; j++) { mas[i][j] = j; } } alert(mas); |
а сразу : mas[0][0] = 10; ?
а если там будут не значения, а хеши, т.е mas=[[{qq:1,ww:2},...? |
daima,
mass=[];mass.push([10]); alert(mass[0][0]); |
Супер, спасибо, буду знать. а с хешами как?
|
Ребята! подскажите пожалуйста как извлечь уникальные значения из массива:
var array = [1,2,3,4,1,2,6,7]; заранее спасибо! |
берм 1е значение и снова пробегаемся по массиву если нету - выводим и т.д.
|
Часовой пояс GMT +3, время: 15:42. |
|