如何在Swift中从NSNumber中获取Int值?或者将NSNumber数组转换为Int值数组?我有一个NSNumber列表
let array1:[NSNumber]
我想要一个这个数组的Int值列表
let array2:[Int] = Convert array1
irlmq6kh1#
如果集合中有非整数元素,则它取决于预期的结果。
let array1: [NSNumber] = [1, 2.5, 3]
如果希望仅在所有元素都是整数时才保留集合
let array2 = array1 as? [Int] ?? [] // [] all or nothing
如果只想从集合中获取整数
let array3 = array1.compactMap { $0 as? Int } // [1, 3] only integers
如果你想要所有元素的整体值
let array4 = array1.map(\.intValue) // [1, 2, 3] whole values
eqqqjvef2#
我用一行代码解决了这个问题:
let array1 : [NSNumber] = [1, 2.5, 3] let array2 = array1.compactMap {Int(truncating: $0)} let array3 = array1.compactMap(Int.init)
它返回一个Int值数组。
Result of array2 = [1,2,3] Result of array3 = [1,3]
2条答案
按热度按时间irlmq6kh1#
如果集合中有非整数元素,则它取决于预期的结果。
如果希望仅在所有元素都是整数时才保留集合
如果只想从集合中获取整数
如果你想要所有元素的整体值
eqqqjvef2#
我用一行代码解决了这个问题:
它返回一个Int值数组。