繁体   English   中英

将二进制整数数组转换为Javascript中的字符串数组

[英]Convert binary integer array to string array in Javascript

我有一个整数数组

array = [1,1,1,1,0,0,0,0]

我想根据以下逻辑转换为字符串数组:

for(var index in arr){
   if(arr[index] == 0){
      arr[index] == 'Closed'
   }
   else{
      arr[index] == 'Open'
   }
}

为了得到以下输出

arr = ['open','open','open','open','closed','closed','closed','closed']

但是代码无法正确执行。 您不能将字符串分配给Javascript中的数组吗? 任何帮助,将不胜感激。

你有错字

arr[index] == 'Closed'
           ^

和这里

arr[index] == 'Open'
           ^

您在这里进行比较而不是分配。

满足您要求的另一种方法是使用功能map

这种方法将创建一个新的数组

 const array = [1,1,1,1,0,0,0,0], result = array.map(n => n === 0 ? 'closed' : 'open'); console.log(result); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

使用布尔值强制变短一点(1 = true,0 = false)

 const array = [1,1,1,1,0,0,0,0], result = array.map(n => n ? 'open' : 'closed'); console.log(result); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

您正在使用比较运算而不是分配值,它应该是arr[index] = 'Open'而不是arr[index] == 'Open'

您可以使用Array.map来测试数组项的值。 返回值是更新后的值的新数组

es5示例

var converted = arr.map(function(value){ if (value ==0) { return 'closed'; } return 'open'; });

es6

const converted = arr.map(value => value === 0 ? 'closed' : 'open');

您可以使用map();

 array = [1,1,1,1,0,0,0,0]; const result = array.map(el => el === 1 ? "open" : "close"); console.log(result); 

您在某些地方使用==而不是= 使用Double equals进行比较,例如检查杯子中是否装有橙汁。 Single equals用于设置变量,例如将橙汁倒入杯子中。 正确的代码应为:

for(var index in arr) {
    if(arr[index] == 0) {
        arr[index] = 'Closed'
    } else {
        arr[index] = 'Open'
    }
}

要考虑的另一件事是,即使在JavaScript中也可能更改数组的类型,这通常是不好的做法。 原因是,如果稍后在您的代码中想要恢复原来的二进制数组,那么将很困难。

最好的祝愿,卢克。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM