【发布时间】:2020-03-01 16:22:26
【问题描述】:
我尽量做到简洁,所以我的帖子主要是代码。我认为这在某种程度上违反了规则,但我认为如果您将代码粘贴到控制台中,这是您查看问题的最简单方法。我不明白为什么 if 语句为validIn 函数返回console.log() 但不返回位于同一块中的false。
所以功能 checkSudo 单独工作正常:
function checkSudo(data) {
for (var i = 0; i < data.length; i++) {
if (i < data.length - 1 && data[i].length !== data[i + 1].length) {
console.log("hello");
return false;
}
if (
i < data.length - 1 &&
data[i].toString() === data[i + 1].toString()
) {
return false;
}
let sortRows = data[i].sort((x, y) => x - y);
let compare = [...new Set(sortRows)];
if (sortRows.toString() !== compare.toString()) {
return false;
}
}
for (var i = 0; i < data.length; i++) {
let columns = [];
for (var j = 0; j < data.length; j++) {
columns.push(data[i][j]);
columns.sort((x, y) => x - y);
let compare = [...new Set(columns)];
if (columns.toString() !== compare.toString()) {
return false;
}
}
}
return true;
}
但是在isValid函数里面只显示console.log(???)
function isValid(data) {
if (data.length == 1 && data[0] != 1) {
return false;
}
if (data.length == 0) {
return false;
}
checkSudo(data);
function checkSudo(data) {
for (var i = 0; i < data.length; i++) {
if (i < data.length - 1 && data[i].length !== data[i + 1].length) {
console.log("hello");
return false;
}
if (
i < data.length - 1 &&
data[i].toString() === data[i + 1].toString()
) {
return false;
}
let sortRows = data[i].sort((x, y) => x - y);
let compare = [...new Set(sortRows)];
if (sortRows.toString() !== compare.toString()) {
return false;
}
}
for (var i = 0; i < data.length; i++) {
let columns = [];
for (var j = 0; j < data.length; j++) {
columns.push(data[i][j]);
columns.sort((x, y) => x - y);
let compare = [...new Set(columns)];
if (columns.toString() !== compare.toString()) {
return false;
}
}
}
return true;
}
}
调用函数的数组(返回false):
[
[1, 2, 4, 2,3],
[3,2, 4,1],
[4,1, 3,2],
[2,3, 1,4]
];
哔声是怎么回事?
【问题讨论】:
标签: javascript