【问题标题】:Count duplicate values from a list of objects计算对象列表中的重复值
【发布时间】:2019-07-09 05:50:40
【问题描述】:

我正在解析数据库中的一些数据。但我不想显示重复数据,也不想计算对象列表中有多少重复数据。我想用 React.js 来做

这是我的解析数据

我不希望 jobaer 或 web 多次出现,我希望它显示如下:

 jobaer : 3
 web: 2

我已经做了一个函数来做到这一点,但它不起作用。

 this.state = {
                clientReqList:[],
               }

getClientReqList = () => {
        axios.get( this.state.apiUrl+'/api/v1/SalesLead/getAll', {})
            .then((response) => {
                 console.log("response",response.data.data);
                this.setState({ clientReqList: response.data.data  });
            }).catch((error)=>{  console.log("error",error); this.setState({ clientReqList: []  });   });
    };

    count() {
            var array_elements= this.state.clientReqList;
            document.write(array_elements)
            array_elements.sort();

            var current = null;
            var cnt = 0;
            for (var i = 0; i < array_elements.length; i++) {
                if (array_elements[i] != current) {
                    if (cnt > 0) {
                        document.write(current + ' comes --> ' + cnt + ' times<br>');
                    }
                    current = array_elements[i];
                    cnt = 1;
                } else {
                    cnt++;
                }
            }
            if (cnt > 0) {
                document.write(current + ' comes --> ' + cnt + ' times');
            }


        }

结果显示:

[object Object] comes --> 1 times
[object Object] comes --> 1 times

谁能指导我完成这个?

【问题讨论】:

    标签: javascript arrays reactjs


    【解决方案1】:

    扩展运算符是实现这一目标的最简单方法。

    您可以在此处找到一个简短的示例: https://jsbin.com/gapeqewubo/edit?js,console,output

    const results = {
     jobaer: 3,
     web: 2,
     anotherone: 4,
     web: 2,
     jobaer: 3
    }
    
    const uniqueResults = {
      ...results
    }
    

    关于此的有趣文章:

    https://codeburst.io/a-simple-guide-to-destructuring-and-es6-spread-operator-e02212af5831

    https://hacks.mozilla.org/2015/05/es6-in-depth-destructuring/

    注意rest 运算符看起来与spread 运算符完全相同,唯一的 区别在于方法参数中使用了rest运算符。

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-22
      • 2012-09-05
      • 2017-11-20
      • 2017-11-28
      • 2019-06-03
      • 2013-06-03
      相关资源
      最近更新 更多