Ios 填充365个数组

Ios 填充365个数组,ios,arrays,swift,loops,if-statement,Ios,Arrays,Swift,Loops,If Statement,因此,我尝试填充一个大小为365的数组,数组中的每个值都应该表示前一天的一天,stepy.step.apppend(steps)代码的第一行,用healthkit提供的步骤数据填充数组,但是我没有从没有步骤的几天中得到任何结果,我需要填写不与0一起使用的日期,以便为以后的步骤设置正确的日期 编辑:也就是说,我从healthkit中以特定日期的形式获得步骤,但是从没有步骤的日子我什么也得不到,我需要用0值填充这些日子。我想通过首先添加步骤来实现这一点,对于0或null的每一天,我添加数字0 ste

因此,我尝试填充一个大小为365的数组,数组中的每个值都应该表示前一天的一天,stepy.step.apppend(steps)代码的第一行,用healthkit提供的步骤数据填充数组,但是我没有从没有步骤的几天中得到任何结果,我需要填写不与0一起使用的日期,以便为以后的步骤设置正确的日期

编辑:也就是说,我从healthkit中以特定日期的形式获得步骤,但是从没有步骤的日子我什么也得不到,我需要用0值填充这些日子。我想通过首先添加步骤来实现这一点,对于0或null的每一天,我添加数字0

stepy.step.append(Int(steps))

let numbers = 1...365
let numberCount = numbers.count

var products = [Int]()
products.reserveCapacity(numberCount)
for number in numbers {
    if stepy.step.contains(numbers != 0)
    {
        let product = (number * 0)
        print(product)
        stepy.step.append(product)
    }              
}
也许就是这样

if stepy.step.contains(numbers != 0)
应该是

if stepy.step.contains(number != 0)
(比较迭代次数,而不是范围。)

但话说回来,
number!=0
返回一个
Bool
,包含真/假没有意义


一种与问题关系不大的方法 但是为了好玩,这里有一种不同的方法来初始化具有一定容量的数组,并在适当的地方插入值

注意,我添加了很多关于OP想要通过
包含
检查和所有内容来实现的个人解释,因为OP发布的内容没有计算任何内容:

stepy.step.append(Int(steps))
// Indicated `stepy.step` is of type `[Int]`

// If you have to start with an input range, you can use:
//     (1...365).map { _ in 0 }
let stepsOfLastYear: [Int] = Array(repeating: 0, count: 365) 
    .enumerated()   // A different way to obtain an index like in a for loop
    .map { index, value in
        // The only containment check that makes sense: was the
        // source array large enough? -- If not, pass back 0.
        guard stepy.step.indices.contains(index) else { return value }
        return stepy.step[index] }

如果是数字!=0将数字乘以0
number*0
将任何数字乘以0,结果将为0。你想达到什么目的?这是一个非常混乱的问题。我不确定你到底想做什么,或者正在(或没有)发生什么。在你的问题中,你能否再回到基本面上来,帮助我们理解你在这里要做什么。我试图从healthkit中提取过去365天的步骤,这非常有效,但只返回不为空的天数的值。我需要在函数未填充的天数中输入一个值0,因此数组有365个值您在问题中提到过。但你发布的代码中没有任何内容与日期或HealthKit有关。所以我不确定代码应该做什么。它是一个大小为365的数组,第一个函数步骤用不同日期的步骤填充数组。然而,并不是每个人都返回365天,而且那些不是一天的,我需要将0放入。
(1…365)。映射{in0}
可以替换为
数组(重复:0,计数:365)
你说得对!性能会更好(因为不需要迭代)我刚刚注意到一个问题,但是去年的第二个数组步骤没有使用,这是为什么?因为我没有完全理解你的问题,所以我将结果提取到一个新变量中。我不是100%确定你的应用程序做什么,因为有太多信息丢失了。如果365个条目存储在整个
stepy.step
数组中,那么它可能是整个
stepy.step数组的替代品。