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

在Javascript中将二进制整数数组转换为字符串数组,javascript,arrays,Javascript,Arrays,我有一个整数数组 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','close

我有一个整数数组

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中为数组分配字符串吗?任何帮助都将不胜感激

您可以使用map();
array=[1,1,1,0,0,0];
const result=array.map(el=>el==1?“打开”:“关闭”);

控制台日志(结果)您有一个输入错误

arr[index] == 'Closed'
           ^
在这里

arr[index] == 'Open'
           ^
这是一个比较,而不是一个分配

另一种实现需求的方法是使用函数

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

const数组=[1,1,1,0,0,0],
结果=array.map(n=>n==0?'closed':'open');
控制台日志(结果)

。作为控制台包装{max height:100%!important;top:0;}
您使用的是比较操作而不是赋值,它应该是
arr[index]='Open'
而不是
arr[index]='Open'

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

es5示例

var转换=arr.map(函数(值){
如果(值==0){
返回“关闭”;
}
返回“打开”;
});

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

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

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

另一个要考虑的是,改变数组的类型通常是不好的做法,即使在JavaScript中也是如此。原因是,如果以后在代码中希望恢复原始二进制数组,那么就很困难了


祝你一切顺利,卢克。

这可能是我第一次看到
=
=
弄糊涂,而不是相反。无论如何,赋值(设置值)是
=
,比较是
==
(或
==
)。这很好,但(几乎)只有代码的答案并不能为新的JavaScript开发人员提供很多洞察力和清晰性。如果您添加了一个关于
.map()
如何工作、胖箭头函数如何工作等的描述,那就太好了。问题是,这些都不是语法错误。它们在语法上很好,并且在开发人员控制台中不会报告语法错误。当然,它们在语义上是不正确的。你是对的,语法没有任何错误。它只是没有达到预期的效果。不会有任何错误,因此我的评论不正确:)