Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.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_Arrays - Fatal编程技术网

Javascript 筛选数组以使其具有唯一值

Javascript 筛选数组以使其具有唯一值,javascript,arrays,Javascript,Arrays,我需要过滤掉数组,使其只包含唯一的值。 这是我的数组数据 ["X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11", "X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11", "X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11", "X_r

我需要过滤掉数组,使其只包含唯一的值。 这是我的数组数据

["X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11", "X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11", "X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11", "X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11", "X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11", "X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11"]
预期结果应为:

["X_row7", "X_row4", "X_row6", "X_row10", "X_row11", "X_row8", "X_row9"]
我应该如何继续我的代码以获得正确的结果

newArray = [];
for(n in data){
  if(!newArray.indexOf(n)){
     newArray.push(n);
  }
}
console.log(newArray);
如果您需要任何其他信息,请让我知道,我会提供。谢谢

您可以使用函数根据回调函数的返回值筛选出数组中的元素。回调函数对原始数组的每个元素运行

这里回调函数的逻辑是,如果当前项的
indexOf
值与索引相同,则表示该元素是第一次遇到的,因此可以认为它是唯一的。如果没有,则表示已经遇到该元素,因此现在应该丢弃该元素

(c)在该等方面,我们会采取行动,包括包括包括以下各项:X及U RoRo7、X及U RoRoRo7”、“X及U Ro10”、“X及U罗8”、“X及U RoRo8”、“X及U Ro9”、“X及U Ro7”、“X及U Ro7”、“X及U Ro7”、“X及U罗7”、“X X及U罗4”、“X及U RoRo6”、“X及6”、“X及6”、“X及6”、“X及6”、“X及6”、“X及6”、“X、X、X RoRoRoRo11”、“X、X、X、X、X、8”、“X、8”、“X、8”、“X、8”、“X、8”、“X、8”、“X、8”、“X、8”、“X、8”、“X、8”、“X及8”、“X、8”、“X及8”、“X及7”、“X、8”、“8”、“X、7、8”、“X、8”、“X、8”、“X、8”、“X及7、7、8”、“X、8”、“X、8”、“X、8”、“X“第6行”、“第10行”,“第八排”、“第九排”、“第十一排”、“第七排”、“第四排”、“第六排”、“第十排”、“第八排”、“第九排”、“第十一排”]; var filteredArray=arr.filter(功能(项目、位置){ 返回arr.indexOf(项目)=位置; });
log(filteredArray);您可以使用哈希表查找并过滤所有未包含的值

在这方面,var数据的统计数据包括以下几方面的数据:一项“X U RoRo7”、“X U RoRoRo7”、“X U RoRo10”、“X U罗8”、“X U RoRo8”、“X U RoRo9”、“X U Ro7”、“X U Ro7”、“X U Ro7”、“X U Ro7”、“X U Ro7”、“X X U Ro4”、“X U Ro8”、“X U Ro9”、“X Ro11”、“X”、“X Ro11”、“X Ro11”、“X Ro11”、“X Ro11”、“X Ro11”、“X Ro7”、“X Ro7”、“X Ro7”、“7”、“7”、“7”、“7”、“7”、“8”、“7”、“7”、“8”、“X”“X”“X”“X”“X Ro11”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“X Ro7”、“8”、“7”、“8”、“8”、“7”、“8”、“7”、“7”、“7”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“8”、“7”、“8”、“8”、“8”、“7”、“7”、“7”、“X Ro第6行“,”第10行“,”第八排、第九排、第十一排、第七排、第四排、第六排、第十排、第八排、第九排、第十一排], 唯一=数据。过滤器(函数(a){ return!this[a]&(this[a]=true); },Object.create(null));
console.log(唯一);您可以使用
reduce
循环数组并获取不重复的值。还可以使用aux
对象
获取添加值的计数。
var aux={};
新阵列的新阵列的新阵列的新阵列的新阵列的新阵列的新阵列的新阵列的新阵列的新阵列的新阵列的新阵列的新阵列的新阵列的新阵列的新阵列的新阵列的新阵列的新阵列的新阵列的新阵列的新阵列的新阵列的新阵列的新阵列的新阵列的成员包括包括包括“X及U罗7”、“X你们们所进行7”、“X你们们所进行的排排6”、“X队”、“X队”、“X队”、“10”、“10”、“X你们你们们所所采取的10”、“10”、“X你们你们们所进行的排”、“10”、“10”、“10”、“X你们们”、“10”、“10”、“10”、“10”、“X你们你们们”、“X你们们所进行的排”、“10”、“X队”、“10”、“10”、“10”、“10”、“10”、“10”、“10”、“10”、“10”、“10”、“10”、“X队”、“10”、“10”、“10”、“10”、“10”、“10”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“”、“6、“X_第10行”第8行、第9行、第11行、第7行、第4行、第6行、第10行、第8行、第9行、第11行)。减少((总金额、当前金额)=>{
如果(!辅助[当前]){
辅助[电流]=1;
总推力(当前);
}
返回tot;
}, []);
console.log(newArray);
您可以使用和:

在这些数据方面,var数据的统计数据包括以下各项:X(U罗7)、X(U RoRoRo7)、X(U罗10)、X(U罗8)、X(U罗8)、X(U罗9)、X(U罗11)、X(U罗11)、X(U罗7)、X(U罗7)、X(X)Ro7)、X(X)RoRo7)、X(X)、X(U RoRoRo6)、X)、X(X)、X(X)、X)、X(U Ro8)、X)、X(8)、X)、X(X)、X(8)、X)、X(8)、X(8)、X)、X(8)、X(U RoRoRoRo8)、X)、X)、X)、X(6”、“X(6)、X)、X)、X(6”、“X)、X)、X(8)、6)、X(8)、X(8)、X)、X(7)、X)、8)、X(7)、X)、8)、X(7)、X)、X)、X(7)、X)、8)、X)、X(“第6行”、“第10行”“,”第八排“,”第九排“,”第十一排“,”第七排“,”第四排“,”第六排“,”第十排“,”第八排“,”第九排“,”第十一排“; var unique=newmap(); forEach(d=>unique.set(d,d)); var uniqueItems=[…unique.keys()];
控制台日志(唯一项)自2015年6月15日起,您可以使用创建唯一阵列:

var uniqueArray = [...new Set(array)]

例如:

var data = ["X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11", "X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11", "X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11", "X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11", "X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11", "X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11"]
var newArray = [...new Set(data)]
console.log(newArray)

>> ["X_row7", "X_row4", "X_row6", "X_row10", "X_row8", "X_row9", "X_row11"]
arr=[“我”、“做”、“爱”、“JavaScript”、“和”、“我”、“也”、“做”、“爱”、“Java”];
uniqueArr=[…新集合(arr)];
//或
reallyUniqueArr=arr.filter((项目,位置,ar)=>ar.indexOf(项目)==pos)

log(`${uniqueArr}\n${reallyUniqueArr}')
如果需要筛选多个数组,则对
indexOf
方法有一个细微的变化:

function unique(item, index, array) {
    return array.indexOf(item) == index;
}
用作:

arr.filter(unique);
我一直使用:

unique = (arr) => arr.filter((item, i, s) => s.lastIndexOf(item) == i);
但最近,我不得不为以下项目获得独特的价值:

["1", 1, "2", 2, "3", 3]
而我的老替补没有切断它,所以我想出了这个:

uunique = (arr) => Object.keys(Object.assign({}, ...arr.map(a=>({[a]:true}))));

可以使用JavaScriptSet数组来过滤数组以包含唯一值。from方法,如下所示:

Array.from(新集合(arrayOfNonUniqueValues))

Set对象允许您存储任何类型的唯一值,无论 基本值或对象引用

返回值一个新的集合对象

from()方法从 类似数组的或可编辑的对象

返回值一个新的数组实例

示例代码:

(c)在该等阵列中,警方的警队阵列是一个整体阵列的成员,而该等阵列是一个整体阵列的成员。该等阵列是一个警方阵列阵列的成员,包括包括“X所进行的7”、“X所进行的7”、“X所进行的7”、“X所进行的7”、“X所进行的7”、“X所进行的X所罗7”、“X所进行的六、X所进行的六”、“X所进行的六”、“X所进行的律所进行的比赛”、“X所进行的十十十”、“X所所进行的10”、“X所作出的图8”、“X所作出的8”、“X所作出的8”、“X所作出的图8”、“X所作出的图8”、“X所作出的图8”、“X所作出的”、“X所作出的”、“X所作出的”、“X所作出的”、“X所作出的”、“X所作出的”、“X所作出的图”、“X所作出的”、“X所作出的图”、“X所作出”、“X所作出”、“X所作出的图8”、“X所作出的图”、“X所“第6行”、“第10行”,“第八排”、“第九排”、“第十一排”、“第七排”、“第四排”、“第六排”、“第十排”、“第八排”、“第九排”、“第十一排”] const uniqueArray=Array.from(新集合(数组)); log(“uniqueArray:”,uniqueArray) 然后我们可以写:

const arr = [1, 5, 2, 2, 2, 3, 4, 3, 2, 1, 5]
const uniqueArr = arr.unique()

据我所知,这是针对
es2015
及以上版本的。
ES6
有“更干净”的选项,但这是一个很好的方法(使用
TypeScript

let值:任意[]=[];
const distinct=(值:any,索引:any,self:any)=>{
返回self.indexOf(value)==索引;
};
values=values.filter(不同);
(代码)代码><码码><代码><代码><码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码7、X所进行的X所Ro7、X所采取的7、X所采取的X所采取的7、X所采取的X所采取的RoRoRoRo7、X所采取的X所采取的X所采取的X所采取的行动、X所采取的7”、“X所采取的X所采取的X所采取的行动、X所采取的X所采取的X所采取的RoRoRoRoRoRo7”、“X所采取的7”、“X所采取的X所采取的X所采取的X所采取的行动、X所采取的X所采取的X所采取的X所采取的X所采取的行动、X所采取的行动、X所采取的行动、X所采取的措施、X所采取的X所采取的行动、X所“第6行”、“第10行”,“第8行”、“第9行”
const arr = [1, 5, 2, 2, 2, 3, 4, 3, 2, 1, 5]
const uniqueArr = arr.unique()