我有一个整数数组
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中为字符串分配字符串?任何帮助,将不胜感激。
答案 0 :(得分:3)
您有拼写错误
<system.webServer>
<rewrite xdt:Transform="Remove" >
</rewrite>
</system.webServer>
在这里
arr[index] == 'Closed'
^
你进行比较而不是分配。
满足您要求的另一种方法是使用 map
功能:
此方法将创建一个新数组
arr[index] == 'Open'
^
&#13;
const array = [1,1,1,1,0,0,0,0],
result = array.map(n => n === 0 ? 'closed' : 'open');
console.log(result);
&#13;
使用布尔值的 coercion 稍短(1 = true,0 = false)
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;
const array = [1,1,1,1,0,0,0,0],
result = array.map(n => n ? 'open' : 'closed');
console.log(result);
&#13;
答案 1 :(得分:1)
您正在使用比较操作而不是分配值,它应该是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');
答案 2 :(得分:0)
你可以使用map();
array = [1,1,1,1,0,0,0,0];
const result = array.map(el => el === 1 ? "open" : "close");
console.log(result);
答案 3 :(得分:0)
您在某些地方使用==
而不是=
。双等于用于比较,例如检查杯子中是否有橙汁。 Single equals用于设置变量,例如将橙汁倒入杯中。正确的代码应该是:
for(var index in arr) {
if(arr[index] == 0) {
arr[index] = 'Closed'
} else {
arr[index] = 'Open'
}
}
要考虑的另一件事是改变数组的类型通常是不好的做法,即使在JavaScript中也是如此。原因在于,如果稍后在您的代码中,您希望恢复原始二进制数组,那就太难了。
祝福,卢克。