循环遍历具有二进制数的数组,如果数字为 1,则写入 true,如果数字为 0,则写入 false



我正在尝试制作一个网页,通过首先解析ascii中的单个字符,然后将ascii解析为二进制,然后将二进制文件放入数组中来制作加密字母。将其放入数组后,我必须遍历数组并将 true 写为 "1" 或 false 表示 "0"。然后我必须输出到页面。如果您输入字母"a",输出的外观示例将是">

假,真,真,假,假,假,假,真"更新:我添加了"循环"以理解我的问题

$(document).ready(function()
{
var output = document.getElementById("output");
var strQuestion = "Enter ONE character, matey!";
var strStandard = "J";
var chrCharacter = "";
var chrLength = 0;
var array = [];
var arrayLength = 0;
while (chrLength != 1)
{
chrCharacter = prompt(strQuestion, strStandard);
chrLength = chrCharacter.length;
}
intAscii = parseAscii(chrCharacter);
strBin = parseBin(intAscii);
array = strBin.split("");
for (i = 0; i < arrayLength; i++ )
{
if (array[i] = 0)
{
array[i] = false;
}
else if (array[i] = 1)
{
array[i] = true;
}
}

output.innerHTML = array;


}); //end document.ready

/*****          
Purpose: Converts a character into ascii        
Parameters: single character / letter       
Return: integer representing an ascii value
*****/
function parseAscii(chrCharacter)
{
intAscii = chrCharacter.charCodeAt(0);
return intAscii;
}
/*****          
Purpose: Takes the ascii code and turns it into binary          
Parameters: single integer representing an ascii value  
Return: binary, base 2 representation of the number passed to this function
*****/
function parseBin(intAscii)
{
strBin = parseInt(intAscii, 10).toString(2);
if(strBin.length < 8)
{
var intPlaceHolders = 8 - strBin.length;
for(var i = 0; i < intPlaceHolders; i++)
{
strBin = "0" + strBin;
}
}
return strBin;
}

我会将带有二进制的数组转换为具有布尔值的数组,您可以将这些数组连接在一起,形成可以在网页上显示的字符串。

array = [1,1,0,0,1]
// This will map over the items and perform an type conversion 
var booleanArray = array.map(Boolean)
// Join all the items together as a string
Var booleanString = booleanArray.join(", ")
output.innerHTML = booleanString

'

我没有测试它,但如果我没有做任何错别字,它应该可以工作。


顺便说一句,我不认为这是他们所说的循环。但这绝对是完成工作的一种方式。

如果我正确理解您的问题,您可以使用map函数并使用innerHTML将输出添加到 DOM 将 1 和 0(二进制(数组转换为 ture 和 false 的值:

请参阅以下示例:

// Populate myBinaryArray using your ascii method to get the follow:
let myBinaryArray = [1, 0, 0, 1, 1, 0, 1];
document.body.innerHTML += myBinaryArray.map(bit => !(!bit));

相关内容

最新更新