【可视化】数据的处理

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/u010263423/article/details/102623296


判断关键字是否在对象中存在

var obj = {
        name:"sad"
    };
    console.log("name" in obj);

Reduce 用法

统计数据中重复的元素的个数

<script>
    var arr = [1,2,3,1,1,178,1,1,1,2,2,3,15];
    var sum = arr.reduce(function(prev,next) {
        /*如果next在prev中*/
        /*console.log(prev);*/
        if(next in prev){
            prev[next]++;
        }else{
            /*这么做就是向prev中追加新的统计元素*/
            prev[next] = 1;
        }
        return prev;
        /*这里要有个花括号,初始化prev*/
    },{});
    console.log(sum);

    /*这里面会有key 值的排序,并不是reduce处理的,而是对象拍的序
    * key值如果是数字的话,obj会自己排序*/
</script>

加和

var grade = [
        {name:"zhangsan1",grade:60},
        {name:"zhangsan2",grade:70},
        {name:"zhangsan3",grade:80},
        {name:"zhangsan4",grade:90},
    ];
    var sum = grade.reduce(function (previousValue, currentValue) {
        /*注意这里赋值给prev*/
        return previousValue + currentValue.grade;
    },0);
    console.log(sum);

去重

测试去重的时候,漏敲了几行代码,导致老是提示错误,尝试打印 arr1arr2 中发现途中 arr2 会变成 undefined,我猜测这个 reduce 一定是有某种机制在里面的,问老师先。

<script>
    var arr1 = [1,2,3,1,23,1,2,3,1,2,3];
    var arr2 = arr1.reduce(function (previousValue, currentValue) {
        /*indexOf可以是数组,字符串*/
        if(previousValue.indexOf(currentValue) == -1){
            return previousValue.concat(currentValue);
        }else{
            /*必须要有这个返回值,不然你的arr2会变成undefined*/
            return previousValue;
        }
    },[]);
    console.log(arr2);
</script>

测试如下
在这里插入图片描述


筛选过滤 Filter

总结一下,这个可以根据筛选条件来提取你想要的数据

<script>
    /*filter 过滤
    return 为 true 会保留
    为 false 会过滤掉*/

    var grade = [
        {name:"zhangsan1",grade:60},
        {name:"zhangsan2",grade:50},
        {name:"zhangsan3",grade:40},
        {name:"zhangsan4",grade:70},
        {name:"zhangsan5",grade:80},
    ];
    /*过滤器*/
    var arr1 = grade.filter(function (value, index, array) {
        return value.grade >= 60;
        /*return value.name == 'zhangsan1';*/
    });
    console.log(arr1);
</script>

在这里插入图片描述


画板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <canvas id="canvas" width="1111" height="666" style="border: 4px silver solid">

    </canvas>
</body>
<script>
    var can = document.querySelector("#canvas");
    /*初始化上下文*/
    var ctx = can.getContext("2d");
    function draw() {
        ctx.lineWidth = 10;
        ctx.strokeStyle = "hotpink";
        /*fill会自动闭合*/
        ctx.fillStyle = "skyblue";

        /*起点*/
        ctx.moveTo(100,230);
        /*终点*/
        ctx.lineTo(300,450);
        ctx.lineTo(500,450);
        ctx.lineTo(100,230);

        /*划线,不会自动闭合*/
        ctx.stroke();
        /*自动闭合*/
        ctx.closePath();
        ctx.fill()
    }
    /*draw();*/

    function drawRect() {
        ctx.strokeRect(10,10,500,50);
        ctx.fillRect(70,10,500,50);
        ctx.clearRect(70,10,10,10)
    }
    /*drawRect();*/

    function drawCircle() {
        /*开始新路径*/
        ctx.beginPath();
        /*0点,起始点是最右边的那个*/
        ctx.moveTo(100,100);
        /**/
        ctx.arc(100,100,50,0,Math.PI/2);
        /*闭合曲线*/
        ctx.closePath();
        /*画线*/
        ctx.stroke();
    }
    drawCircle();
</script>

<script>

</script>
</html>

猜你喜欢

转载自blog.csdn.net/u010263423/article/details/102623296