计算数组JavaScript中唯一的单词

时间:2020-04-24 19:16:21

标签: javascript

我有一个数组,它在另一个函数中收集了一系列单词。我的意图是计算和分离那些唯一的词,如果重复这些词,则不要计算它们。我走了这么远,但是代码停留在第一位。目的是计算数组中的唯一单词。

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;
        }
    }
});

5 个答案:

答案 0 :(得分:2)

您可以尝试使用Set,该对象可以存储唯一值。

const valuesYouWant = Array1.map(item => item.perfilRoot); // new array with values you want from Array1
const uniqueValues = [...new Set(valuesYouWant)]; // new array with unique values from array valuesYouWant

console.log(uniqueValues); // this will log your unique values
console.log(uniqueValues.length); // this will log the length of the new created array holding the unique values

答案 1 :(得分:2)

转换为win32com并选中Set

size

答案 2 :(得分:0)

您可以考虑使用Set。

array = [1,1,2,3,4,4,5];
unique = [...new Set(array)];
console.log (unique.length);

答案 3 :(得分:0)

您可以使用Sets:

let arr = [1, 2, 3, 2, 3, 1]
console.log(new Set(arr).size)

或者您可以使用类似地图的对象来计算唯一键:

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)

答案 4 :(得分:0)

由于您只想计算唯一词,因此Set将不起作用。下面的代码查看该数组,并且仅当该单词在Array1中仅被发现一次时,它才会将其添加到arrayTemp

let arrayTemp = [];
Array1.map(a=>a.perfilRoot).forEach((item, index) => {
    if (index +1 < Array1.length && Array1.slice(index +1).indexOf(item) === -1) arrayTemp.push(item);
});
console.log(arrayTemp);
console.log('number of unique words', arrayTemp.length);