gpt4 book ai didi

javascript - charCodeAt() - 无法读取未定义的属性 'length'

转载 作者:行者123 更新时间:2023-12-03 02:34:45 24 4
gpt4 key购买 nike

我需要一些建议来使用 charCodeAt() 方法。

我的代码如下:

doParity() {
var str = ["abcd", "efgh", "ijkl"];
var arr = str[0][0] + str[1][0] + str[2][0]; // arr = "aei"

var bin = [];
var par = [];
var parity;
var result = [];
// line 8
for (let j = 0; j < 3; j++) {
bin[j] = this.toBin(str[j][0]); // bin[j] is 8bit binary number
par[j] = bin[j][0]; // when j=0, str[j][0] = 'a',
// bin[j] = 01100001,
// par[j] = 0
if (j == 0) parity = par[j] ^ par[j + 1];
else parity ^= parity[j + 1];
alert(parity);
}
//line 18
//for (let i = 0; i < 8; i++) {
// for (let j = 0; j < 3; j++) {
// bin[j] = this.toBin(str[j][i]);
// par[j] = bin[j][i];
// if (j == 0) parity = par[j] ^ par[j + 1];
// else parity ^= parity[j + 1];
// }
// result[i] = parity;
//}
//alert(result);
}

toBin(str) { // This function get ASCII value and return 8bit binary number of it.
var st, i, j, d;
var arr = [];
var len = str.length;
for (i = 1; i <= len; i++) {
//reverse so its like a stack
d = str.charCodeAt(len - i);
for (j = 0; j < 8; j++) {
arr.push(d % 2);
d = Math.floor(d / 2);
}
}
//reverse all bits again.
return arr.reverse().join("");
}

Line8 的 for 循环运行良好,然后我编写了 Line18 的循环,因为我需要获取 8 位异或变量,但它不起作用。

它给了我 this error .

这段代码很简单,但我仍然在徘徊。

如有任何帮助,我们将不胜感激。

最佳答案

for (let i = 0; i < 8; i++) {
for (let j = 0; j < 3; j++) {
bin[j] = this.toBin(str[j][i]);

从循环中 j 上升到 7,但 str 中的所有字符串都是 4 个字符长。 str[0][7] 未定义。

var str = ["abcd", "efgh", "ijkl"];
console.log(str[0][0]);
console.log(str[0][7]);

关于javascript - charCodeAt() - 无法读取未定义的属性 'length',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48584102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com