javascript - js这一坨代码有没有办法简化下,看着挺尴尬的
巴扎黑
巴扎黑 2017-04-10 17:40:29
[JavaScript讨论组]
$scope.ezzh_qsw_lines = Math.ceil($scope.ezzh_qsw.length / $scope.cols);
                $scope.ezzh_zsw_lines = Math.ceil($scope.ezzh_zsw.length / $scope.cols);
                $scope.ezzh_hsw_lines = Math.ceil($scope.ezzh_hsw.length / $scope.cols);
                $scope.bsdw_qsw_lines = Math.ceil($scope.bsdw_qsw.length / $scope.cols);
                $scope.bsdw_zsw_lines = Math.ceil($scope.bsdw_zsw.length / $scope.cols);
                $scope.bsdw_hsw_lines = Math.ceil($scope.bsdw_hsw.length / $scope.cols);
                $scope.bgdw_qsw_lines = Math.ceil($scope.bgdw_qsw.length / $scope.cols);
                $scope.bgdw_zsw_lines = Math.ceil($scope.bgdw_zsw.length / $scope.cols);
                $scope.bgdw_hsw_lines = Math.ceil($scope.bgdw_hsw.length / $scope.cols);
                $scope.sgdw_qsw_lines = Math.ceil($scope.sgdw_qsw.length / $scope.cols);
                $scope.sgdw_zsw_lines = Math.ceil($scope.sgdw_zsw.length / $scope.cols);
                $scope.sgdw_hsw_lines = Math.ceil($scope.sgdw_hsw.length / $scope.cols);
                $scope.bghs_qsw_lines = Math.ceil($scope.bghs_qsw.length / $scope.cols);
                $scope.bghs_zsw_lines = Math.ceil($scope.bghs_zsw.length / $scope.cols);
                $scope.bghs_hsw_lines = Math.ceil($scope.bghs_hsw.length / $scope.cols);
                $scope.sghs_qsw_lines = Math.ceil($scope.sghs_qsw.length / $scope.cols);
                $scope.sghs_zsw_lines = Math.ceil($scope.sghs_zsw.length / $scope.cols);
                $scope.sghs_hsw_lines = Math.ceil($scope.sghs_hsw.length / $scope.cols);
巴扎黑
巴扎黑

全部回复(5)
巴扎黑

思路大概是这样子:

const cols = $scope.cols

let list = ['ezzh_zsw', 'ezzh_hsw'] // 这里的数组换成自己需要的
list.map(function (key) {
    $scope[key+'_lines'] = Math.ceil($scope[key].length / cols);
})
巴扎黑
["ezzh_qsw", "ezzh_zsw", "ezzh_hsw", "bsdw_qsw", "bsdw_zsw", "bsdw_hsw", "bgdw_qsw", "bgdw_zsw", "bgdw_hsw", "sgdw_qsw", "sgdw_zsw", "sgdw_hsw", "bghs_qsw", "bghs_zsw", "bghs_hsw", "sghs_qsw", "sghs_zsw", "sghs_hsw"].map(function(item) {
    $scope[item + '_lines'] = ($scope[item].length / $scope.cols) >> 0;
})
怪我咯

$scope.ezzh_zsw_lines把.后的名字放在数组里循环获取,这样只需要写一个Math.ceil了

高洛峰
Object.keys($scope).map(function(key) {
//不要的属性判断一下……
  $scope[key + '_lines'] = Math.ceil($scope[key].length / $scope.cols);
});
巴扎黑

重复的代码都是可以消除的,要写好代码,就是消除重复和提高表达力

一般你这种情况,写一个for循环,把不一样的参数提取到数组去读取即可

以上

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号