|
Задачи по 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, время: 16:35. |
|