在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()
如何工作、胖箭头函数如何工作等的描述,那就太好了。问题是,这些都不是语法错误。它们在语法上很好,并且在开发人员控制台中不会报告语法错误。当然,它们在语义上是不正确的。你是对的,语法没有任何错误。它只是没有达到预期的效果。不会有任何错误,因此我的评论不正确:)