除了声明"转换是一种更有效的替代方法"之外,我找不到有关差异的文档.lodash中的transform和reduce之间有什么区别(除了慢25%)?
目前我正在使用此方法遍历每个像素,并根据RGB值将值插入到3D数组中.我需要这个数组用于我程序的其他部分,但它非常慢.当在50 x 50的图片上运行时,它几乎是即时的,但是一旦你开始进入数百甚至数百,它需要很长时间才能达到应用无用的程度.任何人对如何加快我的方法有任何想法?
@IBAction func convertImage(sender: AnyObject) {
if let image = myImageView.image {
var pixelData = CGDataProviderCopyData(CGImageGetDataProvider(image.CGImage))
var data: UnsafePointer<UInt8> = CFDataGetBytePtr(pixelData)
let height = Int(image.size.height)
let width = Int(image.size.width)
var zArry = [Int](count:3, repeatedValue: 0)
var yArry = [[Int]](count:width, repeatedValue: zArry)
var xArry = [[[Int]]](count:height, repeatedValue: yArry)
for (var h = 0; h < height; h++) {
for (var w = 0; w < width; w++) {
var pixelInfo: Int = ((Int(image.size.width) * Int(h)) + Int(w)) * 4 …Run Code Online (Sandbox Code Playgroud) 我想在我的所有对象值中改变一些东西,比如说
var a = {a:{c:1},b:2};
desire output : a = {a:{c:5},b:10} //multiply by 5
Run Code Online (Sandbox Code Playgroud)
我这样做
var m = function n (o){
return Object.keys(o).map(function(v,i){
if(o[v] !== null && typeof o[v] === 'object') return n(o[v])
else return (o[v]*5);
})
}
a = m({a:{c:1},b:2})
Run Code Online (Sandbox Code Playgroud)
但得到一个输出
[
[
5
],
10
]
Run Code Online (Sandbox Code Playgroud)