我正在解析数据库中的一些数据。但是我不想显示重复数据,也不想统计对象列表中有多少重复数据。我想用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
有人可以引导我做这个吗?
答案 0 :(得分:0)
Spread运算符是实现该目标的最简单方法。
您可以找到一个简短的例子: 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运算符。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters