计算数组JavaScript中唯一的单词数

计算数组JavaScript中唯一的单词数,javascript,Javascript,我有一个数组,它在另一个函数中收集一系列单词。我打算数一数并分开那些独特的词,如果重复,就不要数一数。我已经走了这么远,但是代码在第一个位置停留了一段时间。目标是计算数组中的唯一单词 let arrayTemp = []; Array1.forEach((item) => { if(arrayTemp[0]){ arrayTemp[0] = item.perfilRoot; } for(let i = 0; i < arrayTemp.leng

我有一个数组,它在另一个函数中收集一系列单词。我打算数一数并分开那些独特的词,如果重复,就不要数一数。我已经走了这么远,但是代码在第一个位置停留了一段时间。目标是计算数组中的唯一单词

let arrayTemp = [];
Array1.forEach((item) => {
    if(arrayTemp[0]){
        arrayTemp[0] = item.perfilRoot;
    }
    for(let i = 0; i < arrayTemp.length; i++){
        if(item.perfilRoot != arrayTemp[i]){
            arrayTemp.push(item.perfilRoot);
        }else{
            break;
        }
    }
});
您可以尝试使用允许存储唯一值的对象

const valuesYouWant=Array1.mapitem=>item.perfilRoot;//新数组,包含要从Array1获得的值 const uniqueValues=[…新设置值youwant];//具有来自array valuesYouWant的唯一值的新数组 console.loguniqueValues;//这将记录您的唯一值 console.loguniqueValues.length;//这将记录保存唯一值的新创建数组的长度 转换为设置并检查大小


可以考虑使用SET.

数组=[1,1,2,3,4,4,5]; unique=[…新的Setarray]; console.log unique.length 可以使用以下集合:

let arr = [1, 2, 3, 2, 3, 1]
console.log(new Set(arr).size)
或者,您可以使用类似对象的贴图来计算uniques关键点:

let arr = ['dog', 'dog', 'cat', 'squirrel', 'hawk', 'what a good dog'];
let m = {};

// count uniques words in array
arr.forEach(word => m[word] = 1);

// prints uniques counters 
console.log('count:', Object.keys(m).length)

因为您只想计算唯一的单词,所以Set将不起作用。下面的代码查看数组,只有在Array1中只找到一次单词时,才会将其添加到arrayTemp

设arrayTemp=[]; Array1.mapa=>a.perfilRoot.forEachitem,索引=>{ 如果索引+1console.log'number of unique words',arrayTemp.length;使用这些词简单地命名对象的键,无需检查重复项,然后调用对象上的object.keys以获得唯一列表。或者使用一个集合…@souarray1.map item=>item.perfilRoot]但请编辑问题以显示示例输入和请求的输出。Set是否也会删除重复的问题?我想问的问题是,如何计算和分离那些唯一的单词,如果重复,则不要计算它们。因此,您是否希望使用初始数组中的所有值创建一个新数组,但只存储一次,还是希望将所有值保存在一个新数组中,但如果恰好有一个值被重复,要从收集的值B中完全删除,或者更清楚地说,是否只保留非重复值?或者,您是否也关心重复的值,但只需要一次?
let arr = ['dog', 'dog', 'cat', 'squirrel', 'hawk', 'what a good dog'];
let m = {};

// count uniques words in array
arr.forEach(word => m[word] = 1);

// prints uniques counters 
console.log('count:', Object.keys(m).length)