Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何计算对象数组中唯一位置的总数?_Javascript - Fatal编程技术网

Javascript 如何计算对象数组中唯一位置的总数?

Javascript 如何计算对象数组中唯一位置的总数?,javascript,Javascript,window.onload=函数(){ 设filHenter=document.getElementById(“文件”); filHenter.addEventListener(“更改”,grabFileObject) } //任务2和任务3 函数grabFileObject(事件){ //抓取上传的文件 让file=event.target.files[0]; 让filLeser=newfilereader(); //将文件读取为文本,并在加载时调用匿名函数 filLeser.readAsTe

window.onload=函数(){
设filHenter=document.getElementById(“文件”);
filHenter.addEventListener(“更改”,grabFileObject)
}
//任务2和任务3
函数grabFileObject(事件){
//抓取上传的文件
让file=event.target.files[0];
让filLeser=newfilereader();
//将文件读取为文本,并在加载时调用匿名函数
filLeser.readAsText(文件);
filLeser.onload=函数(){
//分割每一行
常量行=filLeser.result.split(“\n”);
//循环遍历每一行
对于(变量i=0;i
我有一个任务,我必须读取JavaScript中的CSV文件,并显示数据及其统计信息。我已经设法完成了必须读取文件并将每个事务保存在对象数组中的部分。我现在的问题是如何计算这些交易的统计数据


如果我想计算列表中位置(非重复)的唯一总数,我将如何使用我已有的设置进行计算?

您必须将所有结果保存在某个位置,以查看其是否唯一。例如:

const data=[{Location:'x'},{Location:'x'},{Location:'y'}];
函数totalNumberOfLocations(数组){
const unique={};
forEach(item=>(惟一的[item.Location]=item));
//现在,在unique object中,您拥有按位置划分的所有唯一字段。您可以返回并解析它。
//要计算它,您可以使用以下命令
console.log('唯一位置的长度为',Object.keys(unique.length));
}

位置总数(数据)在仅映射对象的位置后,可以使用
设置
获取唯一值。然后,通过将此集合转换回数组并使用
length
属性,可以获得唯一位置的计数

const data = [{Location: 'x'}, {Location: 'x'}, {Location: 'y'}];
const getUniqueLocations = data => [...new Set(data.map(i => i.Location))].length;
console.log(getUniqueLocations(data)); // prints 2

为了查找数组中唯一的元素,我使用
filter
并将索引与
findIndex
(按属性唯一)或
indexOf
(按原语或对象引用唯一),因为它们只返回匹配的第一个元素的索引

const data=[{Location:'x'},{Location:'x'},{Location:'y'}];
const unique=data.filter((obj,index,array)=>index==array.findIndex(o=>o.Location==obj.Location));
console.log(唯一的.length);//->2
const data = [{Location: 'x'}, {Location: 'x'}, {Location: 'y'}];
const getUniqueLocations = data => [...new Set(data.map(i => i.Location))].length;
console.log(getUniqueLocations(data)); // prints 2