Original answer
function Taller (N,M) {
var output = [];
// check every element
for (i=0;i<N;i++) {
var temp = [];
// check left
for (j=i-1;;j--) {
//
if (j==i) {
temp.push(-1);
break;
}
// -1
if (j==-1) {
j = N;
}
// [0,N-1]
else if (M[j]>M[i]) {
temp.push(j+1);
break;
}
}
// check right
for (j=i+1;;j++) {
//
if (j==i) {
temp.push(-1);
break;
}
// -1
if (j==N) {
j = -1;
}
// [0,N-1]
else if (M[j]>M[i]) {
temp.push(j+1);
break;
}
}
output.push(temp);
}
return output;
}
156 char
function Taller (N,M) {
o = []
i = 0
for (;i<N;) {
j = i - 1
p = -1
k = 0
t = [p,p]
for (;j!=i;) {
if (j<0)
j = N
if (j>N)
j = -1
if (M[j]>M[i]) {
t[k++] = j + 1
j = i
p = 1
if (k==2) break
}
j += p
}
o[i++] = t
}
return o
}
-> 153 char
function Taller (N,M) {
o = []
i = 0
while(i<N){
j = i - 1
p = -1
k = 0
t = [p,p]
while (j!=i) {
if (j<0)
j = N
if (j>N)
j = -1
if (M[j]>M[i]) {
t[k++] = j + 1
j = i
p = 1
}
j += p
k > 1 ? j=i: ''
}
o[i++] = t
}
return o
}