[英]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来测试数组项的值。 返回值是更新后的值的新数组
var converted = arr.map(function(value){ if (value ==0) { return 'closed'; } return 'open'; });
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.