优雅的代码片段

113 阅读1分钟

1.获取浏览器url参数方法

const search = Object.fromEntries(new URLSearchParams(window.location.search))  //获取URL参数

const isEmbed = search.embed === 'true';  //====与== 区别

const searchThemeStr = search.theme?.toLowerCase?.()   // ?使用

const searchThemeValid = searchThemeStr === 'v2' || searchThemeStr === 'v2plus' ||searchThemeStr === 'v4';

const theme = {
version: searchThemeValid ? searchThemeStr : 'v2plus',
}

2. 去除数组中重复的元素

const filterNonUnique = arr => arr.filter(i => arr.indexOf(i) === arr.lastIndexOf(i));
filterNonUnique([1, 2, 2, 3, 4, 4, 5]);  // [1,2,3,4,5]

//或者
Array.from(new Set([1, 2, 2, 3, 4, 4, 5]));


//reduce
var arr = [1, 2, 1, 2, 3, 5, 4, 5, 3, 4, 4, 4, 4];
var result = arr.sort().reduce(
    function (init, current) {
        if (init.length === 0 || init[init.length - 1] !== current) {
            init.push(current);
        }
        return init;
    },
    []
);
console.log(result); //[1,2,3,4,5]

3.统计数组中元素出现的次数

var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];
var countedNames = names.reduce(function (allNames, name){ 
 if (name in allNames) {
 allNames[name]++; } 
else { allNames[name] = 1; } 
return allNames; }, {});
// countedNames is: // { 'Alice': 2, 'Bob': 1, 'Tiff': 1, 'Bruce': 1 }