Программа должна модифицировать массив согласно rules, я не понимаю, почему [1, 0, 1, 1] смодифицировался некорректно, хоть остальные 3 корректно прошли
var rules = [
[[0, 0, 0, 0], [0, 0, 0, 0]],
[[0, 0, 0, 1], [1, 0, 0, 0]],
[[0, 0, 1, 0], [0, 0, 0, 1]],
[[0, 0, 1, 1], [0, 0, 1, 0]],
[[0, 1, 0, 0], [0, 0, 0, 0]],
[[0, 1, 0, 1], [0, 0, 1, 0]],
[[0, 1, 1, 0], [1, 0, 1, 1]],
[[0, 1, 1, 1], [1, 0, 1, 1]],
[[1, 0, 0, 0], [0, 1, 0, 0]],
[[1, 0, 0, 1], [0, 1, 0, 1]],
[[1, 0, 1, 0], [0, 1, 1, 1]],
[[1, 0, 1, 1], [1, 1, 1, 1]],
[[1, 1, 0, 0], [1, 1, 0, 1]],
[[1, 1, 0, 1], [1, 1, 1, 0]],
[[1, 1, 1, 0], [0, 1, 1, 1]],
[[1, 1, 1, 1], [1, 1, 1, 1]]
];
var groopedPiramid = [[0, 1, 1, 0], [1, 1, 0, 0], [1, 0, 1, 1], [0, 1, 0, 1]];
groopedPiramid = groopedPiramid.map(groop => {
let result = null;
for (let s = 0; s < rules.length; s++) {
let consilience = true;
for (let y = 0; y < 3; y++) {
if (groop[y] !== rules[s][0][y]) {
consilience = false;
break;
}
}
if (consilience) {
result = rules[s][1];
break;
}
}
if (result === null) {
return groop;
} else {
return result;
}
});
groopedPiramid.forEach(element => {
console.log(element);
});