我有一个函数,我已经修改它来获取一个字符串(仅由零和一组成)。字符串 ( timesheetcoldata):
100000000000000000000000100000000000000000000000100000000000000000000000100000000000000000000000100000000000000000000000100000000000000000000000
每次运行函数时,字符串项(数字一和零)都会改变。它总是相同的长度。我已经使上面的字符串更容易看到我想要实现的目标。
我想返回第一个字符,然后返回每 24 个字符(如函数中的变量 colsCount 中)。因此,在上面的示例中,它将返回如下内容:111111
然后我想将这些字符转换为数字(类似于[1, 1, 1, 1, 1, 1])。
然后我想将这些数字相加(所以它会返回,在示例中:)6。
然后我想检查返回的数字是否与变量匹配:rowsCount
或者true如果匹配,false如果不匹配。
我的功能:
$("#J_timingSubmit").click(function(ev){
var sheetStates = sheet.getSheetStates();
var rowsCount = 6;
var colsCount = 24;
var timesheetrowsdata = "";
var timesheetcoldata = "";
for(var row= 0, rowStates=[]; row<rowsCount; ++row){
rowStates = sheetStates[row];
timesheetrowsdata += rowStates+(row==rowsCount-1?'':',');
}
timesheetcoldata = timesheetrowsdata.replace(/,/g, '');
console.log(timesheetcoldata);
});
非常感谢 Rajesh 和 MauriceNino(以及所有其他贡献者)。
使用他们的代码,我能够提出以下工作功能:
$("#J_timingSubmit").click(function(ev){
var sheetStates = sheet.getSheetStates();
var rowsCount = 6;
var timesheetrowsdata = "";
var timesheetcoldata = "";
for(var row= 0, rowStates=[]; row<rowsCount; ++row){
rowStates = sheetStates[row];
timesheetrowsdata += rowStates+(row==rowsCount-1?'':',');
}
timesheetcoldata = timesheetrowsdata.replace(/,/g, '');
var count = 0;
var list = [];
for(var i = 0; i< timesheetcoldata.length; i+=24) {
const num1 = Number(timesheetcoldata.charAt(i));
list.push(num1);
count += num1;
}
let isSameAsRowsCount = count == rowsCount;
console.log('Is Same? ', isSameAsRowsCount);
});