qq_37583141
南烟i
采纳率13.3%
2018-07-23 07:51

前端js获取对象中的值

5
已采纳

{"type":"line","x1":429,"y1":135,"x2":374,"y2":182,"x3":432,"y3":220,"x4":559,"y4":306,"x5":605,"y5":191,"x6":458,"y6":100}
我该如何从对象中获得x,y的所有的值以及最大值与最小值?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

7条回答

  • jslang 天际的海浪 3年前
    var map = {"type":"line","x1":429,"y1":135,"x2":374,"y2":182,"x3":432,"y3":220,"x4":559,"y4":306,"x5":605,"y5":191,"x6":458,"y6":100};
    var x = [], y = [];
    for (var n in map) {
        if (n.charAt(0)=="x") {
            x.push(map[n]);
        }
        if (n.charAt(0)=="y") {
            y.push(map[n]);
        }
    }
    alert("x所有值:"+x+"\nx最大值:"+Math.max.apply(Math,x)+"\nx最小值:"+Math.min.apply(Math,x)+"\ny所有值:"+y+"\ny最大值:"+Math.max.apply(Math,y)+"\ny最小值:"+Math.min.apply(Math,y));
    
    
    点赞 1 评论 复制链接分享
  • Flyfish_L 默默a20 3年前

    你这数据结构有问题,
    换我的话设计是 x为一个数组,y为一个数组,
    {"type":"line","x":[429,xxx,xxx],"y":135}

    点赞 1 评论 复制链接分享
  • weixin_40112792 weixin_40112792 3年前

    var obj = {
    "type":"line",
    "x1":429,
    "y1":135,
    "x2":374,
    "y2":182,
    "x3":432,
    "y3":220,
    "x4":559,
    "y4":306,
    "x5":605,
    "y5":191,
    "x6":458,
    "y6":100 },
    xArr = [],
    yArr = [],
    xyArr = [];

        // 去除对象中的 "type":"line"
        for(var key in obj){
            delete obj["type"];
        };
    
        // 获取对象的key组成的数组
        var objNameArray = Object.keys(obj);
    
        // 遍历key数组
        for(var i=0;i<=objNameArray.length-1;i++){
            //获取x1,x2,x3,x4,x5,x6...
            if( objNameArray[i].indexOf('x')!=-1 ){
                xArr.push(obj[objNameArray[i]]);
            };
            //获取y1,y2,y3,y4,y5,y6...
            if( objNameArray[i].indexOf('y')!=-1 ){
                yArr.push(obj[objNameArray[i]]);
            };
            // 获取x1,y1,x2,y2.....
            xyArr.push(obj[objNameArray[i]])
        }
        console.log(xArr);
        console.log(yArr);
        console.log(xyArr);
    
    点赞 评论 复制链接分享
  • andriod_lmhcn andriod_lmhcn 3年前

    使用jsonarray结构,

    点赞 评论 复制链接分享
  • qq_36113427 是你的十月 3年前

    对象中只有6个x,y值,做一次循环即可。

    点赞 评论 复制链接分享
  • Flyfish_L 默默a20 3年前

    var data = {"type":"line","x1":429,"y1":135,"x2":374,"y2":182,"x3":432,"y3":220,"x4":559,"y4":306,"x5":605,"y5":191,"x6":458,"y6":100};
    var preMaxX = data.x1;
    for(var i = 2 ; i<=6;i++){
    var temp = data.x+"i";
    if(preMaxX<temp){
    preMaxX = temp;
    }
    }

    var preMaxY = data.y1;
    for(var j = 2 ; j<=6;j++){
    var tempY = data.x+"j";
    if(preMaxY<tempY){
    preMaxY = tempY;
    }
    }

    点赞 评论 复制链接分享
  • studying2014 studying2014 3年前

    先获取所有的键,然后循环所有的键,根据键名包含x的获取所有的x值,y一样,同样可以获取x的最大值和最小值,希望对你有帮助。

    点赞 评论 复制链接分享

相关推荐