首页 > 开发 > JS > 正文

组成数组不成功,请大神指点

2017-09-05 12:55:34  来源:网友分享
                var data = {};                var photos = new Array();                var photosList = $api.domAll(".uploadPhotos");//选择所有图片                 for (var ii = 0; ii < photosList.length; ii++) {                    per = $api.attr(photosList[ii], 'src');                    trans = api.require('trans');//转成base64的调用函数                    trans.decodeImgToBase64({                        imgPath : per//图片路径                    }, function(ret, err) {                        if (ret.status) {                            var dataUrl = 'data:image/png;base64,' + ret.base64Str;                            photos[ii] = dataUrl;                            alert(photo[ii]);//有多少张图片就弹出几次base64数据                            return photos[ii];                        } else {                            api.alert({                                msg : err.msg                            });                        }                        return photos[ii];                    });                }                data['photos'] = photos;alert(photos);                alert(photos.length);//弹出 0

说明组不成数组,请问大神要怎样才能组入数组呢?return这东西不会用,不知是不是return放错了。请大神指点。。

解决方案

    photo = ['http://a6a9bb2b2535f09d119f.b0.upaiyun.com/apicloud/c4de4fc78f0ce0ffaa2a9dd23b93884d.jpg','http://a6a9bb2b2535f09d119f.b0.upaiyun.com/apicloud/14ce2856073a87905a498355c2b4cbff.jpg'];        var imgsArr=[];        for (var i in photo) {            var img = new Image();            img.src = photo[i];//图片路径            img.onload = function () {                var that = this;                //生成比例                 var w = that.width,                    h = that.height,                    scale = w / h;                    w = 640 || w;                    h = w / scale;                //生成canvas                var canvas = document.createElement('canvas');                var ctx = canvas.getContext('2d');                canvas.setAttribute('width',''+w+'');                canvas.setAttribute('height',''+h+'');                ctx.drawImage(that, 0, 0, w, h);                var base64 = canvas.toDataURL('image/jpeg', 1 || 0.6 );                 console.log(JSON.stringify(base64));                        imgsArr.push(base64);            }        }    console.log(JSON.stringify(imgsArr));

这样也组不成功,请高手指点