【发布时间】:2017-10-01 10:26:06
【问题描述】:
我是 typescript 和 angular 2 的新手,我不知道如何解决。
我有一个工作日数组和一个由七个数字组成的数组,即 0 或 1。 每个 '1' 对应一个工作日,所以星期一是 1000000,星期二是 0100000,星期三是 0010000,以此类推。
我怎么能在函数中说 WeekDays 数组的第一个对象必须匹配 Frequency 数组的第一个对象等等?我想显示正确的名称,所以如果我给它的数字是 1000000,我必须显示“星期一”,如果数字是 0010100,我必须显示“星期三和星期五”。
如果我简单地将两个数组等同起来,它会给我“类型'字符串'不可分配给类型'数字'”,并且我无法更改频率数组,因为它来自服务器。
@组件
weekDays: string[] = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
frequencyArray: number[] = [1, 0, 0, 0, 0, 0, 0]; //or whatever you want
loadFrequencyLabel() {
var binary = this.prescription.frequencyArray;
var label: string;
for (var i = 0; i < binary.length; i++) {
binary[i] = this.weekDays[i];
return label;
}
}
模板
<p class="frequency-label">{{loadFrequencyLabel()}}</p>
谢谢!
【问题讨论】:
-
无法理解你的逻辑,就像你为什么在 for 循环中写 return 一样。任何方式将
frequencyArray: number[] = [1000000]更改为frequencyArray:any[] = [1000000] -
我不能,因为那组数字来自服务器,现在我写在那里让你理解。无论如何我编辑了这个问题,数组是 [1, 0, 0, 0, 0, 0, 0] @ParthGhiya
-
无论如何我都在 for 循环中写了 return,因为它必须为他找到的每个 1 返回 Day 的名称。
-
那么二进制永远是1,因为在第一个循环的迭代中它会返回&结束
标签: arrays angular typescript