起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1991|回复: 6

[结贴] 如何获取数组 并在数组中查找所需的值

[复制链接]

104

主题

310

帖子

877

积分

高级会员

Rank: 4

积分
877
QQ
发表于 2018-3-15 12:42:09 | 显示全部楼层 |阅读模式
一级列表:商品列表(关联goodsData), 嵌套 二级列表:规格列表(sizeData), 一级和二级用商品编号"fGoodsID"过滤 ;我在一级列表 li 的加载事件中 查找二级列表中查找具有的“fGoodsID"的规格商品,得到数组 rows   然后对rows进行for循环查找最大值 和最小值,最后在前端用get方法获取值但是 前端没有任何反Model.prototype.li1Load = function(event){
                var row = event.bindingContext.$object;
                var sizeData = this.comp("sizeData");
                var rows = sizeData.find(["fGoodsID"] , [row.val("fGoodsID")]);  //主要想用li下面的当前行 获取到定位列的值 row.val("fGoodsID")  否则就只能用each 获取数组了
                //debugger
                var n1 = rows[0].val("fPrice");
                for(var i=1;i<rows.length;i++){
                        if(n1 < rows[i].val("fPrice")){
                                n1 = rows[i].val("fPrice");
                        }
                };
               
                var m1 = rows[0].val("fPrice");
                for(var i=1;i<rows.length;i++){
                        if(m1 > rows[i].val("fPrice")){
                                m1 = rows[i].val("fPrice");
                        }
                };
               
               
               
                justep.Shell.maxPrice.set(n1);
                justep.Shell.minPrice.set(m1);
               
               
        };
       



53

主题

928

帖子

1730

积分

金牌会员

Rank: 6Rank: 6

积分
1730
发表于 2018-3-15 22:03:43 | 显示全部楼层
首先,你要确定 li  的加载事件    是否执行了      另外就是 li的加载事件执行的时候    是否能感知到当前行   
还有就是  你这样写的话  li 如果有很多行   那么  你的n1  和m1 肯定智能得到一级列表最后那一行的商品的规格最大值和最小值  


你这种情况的话  我觉得 你应该在goodsData上设置两个计算列    分别记录该商品的最大规格和最小规格
这个两个计算列的值   来自你的获取最大值和最小值的方法   分别是:


Model.prototype.getMax = function(row){
                var sizeData = this.comp("sizeData");
                var rows = sizeData.find(["fGoodsID"] , [row.val("fGoodsID")]);
   
                var n1 = rows[0].val("fPrice");
                for(var i=1;i<rows.length;i++){
                        if(n1 < rows.val("fPrice")){
                                n1 = rows.val("fPrice");
                        }
                };
           return n1                     
        };




Model.prototype.getMin = function(row){
                var sizeData = this.comp("sizeData");
                var rows = sizeData.find(["fGoodsID"] , [row.val("fGoodsID")]);
      
                var m1 = rows[0].val("fPrice");
                for(var i=1;i<rows.length;i++){
                        if(m1 > rows.val("fPrice")){
                                m1 = rows.val("fPrice");
                        }
                };
           return m1                     
        };



承接wex5开发web项目、微信页面等;
低费用进行零散功能开发(java、JS、微信各种接口、阿里云接口等)
QQ:459349489
回复 支持 反对

使用道具 举报

104

主题

310

帖子

877

积分

高级会员

Rank: 4

积分
877
QQ
 楼主| 发表于 2018-3-16 01:31:42 | 显示全部楼层
本帖最后由 gzh268 于 2018-3-16 02:23 编辑
doudou459 发表于 2018-3-15 22:03
首先,你要确定 li  的加载事件    是否执行了      另外就是 li的加载事件执行的时候    是否能感知到当前 ...

按照这个方法,在goodsData    fMaxPrice编辑计算规则 $model.getMax(row) 但一直出错,也试了其他一些类似的方法 也都一直报错 669.jpg

回复 支持 反对

使用道具 举报

53

主题

928

帖子

1730

积分

金牌会员

Rank: 6Rank: 6

积分
1730
发表于 2018-3-16 09:39:03 | 显示全部楼层
gzh268 发表于 2018-3-16 01:31
按照这个方法,在goodsData    fMaxPrice编辑计算规则 $model.getMax(row) 但一直出错,也试了其他一些类 ...

在计算规则里面    参数不是row    应该是  $row     $model.getMax($row)
承接wex5开发web项目、微信页面等;
低费用进行零散功能开发(java、JS、微信各种接口、阿里云接口等)
QQ:459349489
回复 支持 反对

使用道具 举报

发表于 2018-4-8 16:50:25 | 显示全部楼层
gzh268 发表于 2018-3-16 01:31
按照这个方法,在goodsData    fMaxPrice编辑计算规则 $model.getMax(row) 但一直出错,也试了其他一些类 ...

计算规则  绑定自定义函数用法
http://docs.wex5.com/wex5-ui-question-list-2178/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

104

主题

310

帖子

877

积分

高级会员

Rank: 4

积分
877
QQ
 楼主| 发表于 2018-4-8 18:46:38 | 显示全部楼层
非常感谢老师的指导!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-9-27 19:22 , Processed in 0.092770 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表