↖  经典常用 JavaScript 单行代码函数或方法-2..


-loading- -loading- -loading-

2021-09-30 , 3246 , 104 , 77


在两个数字之间生成一个随机数

这将以两个数字为参数,并将在这两个数字之间生成一个随机数!


const random = (min, max) => Math.floor(Math.random() * (max - min + 1) + min);
console.log(random(1, 50));
// could be anything from 1 - 50


生成随机字符串(唯一ID?)

也许你需要临时的唯一ID,这是一个技巧,你可以使用它在旅途中生成随机字符串。


const randomString = () => Math.random().toString(36).slice(2);
console.log(randomString());
// could be anything!!!


合并多个数组的不同方法

有两种合并数组的方法。其中之一是使用concat方法。另一个使用扩展运算符(…)。

PS:我们也可以使用“设置”对象从最终数组中复制任何内容。

// Merge but don't remove the duplications

const merge = (a, b) => a.concat(b);

// Or

const merge = (a, b) => [...a, ...b];

// Merge and remove the duplications

const merge = [...new Set(a.concat(b))];

// Or

const merge = [...new Set([...a, ...b])];


短路评估速记

在将变量值分配给另一个变量时,可能要确保源变量不为null,未定义或为空。
可以编写带有多个条件的long if语句,也可以使用短路评估。

// Longhand

if (name !== null || name !== undefined || name !== '') {
 let fullName = name;
}

// Shorthand

const fullName = name || 'buddy';


多变量分配

UfqiLong

像Python一样,JavaScript还可以使用这种巧妙的解构技术在同一行代码中同时分配多个变量。

var [a,b,c,d] = [20,14,30,"COD"]

console.log(a,b,c,d)
------------------------------------20 14 30 COD


检查数组中的所有元素是否都满足特定条件

const hasEnoughSalary = (salary) => salary >= 30000

const salarys = [70000, 19000, 12000, 30000, 15000, 50000]
result = salarys.every(hasEnoughSalary)
console.log(result)
-------------------------------false

const salarys = [70000, 190000 ,120000, 30000, 150000,50000]
result = salarys.every(hasEnoughSalary) // Results in false

console.log(result)
---------------------------------true


将数字截断为固定的小数点

借助 Math.pow() 你可以将数字截断为某个小数点的方法。

const toFixed = (n, fixed) => ~~(Math.pow(10, fixed) * n) / Math.pow(10, fixed);
-----------------------------------------------------------------

toFixed(25.198726354, 1);       // 25.1

toFixed(25.198726354, 2);       // 25.19

toFixed(25.198726354, 3);       // 25.198

toFixed(25.198726354, 4);       // 25.1987

toFixed(25.198726354, 5);       // 25.19872

toFixed(25.198726354, 6);       // 25.198726


克隆数组

它将返回原始数组的副本。

oldArray = [1,4,2,3]

var newArray = oldArray.slice(0);

console.log(newArray)
------------------------------------
[1,4,2,3]


UfqiLong

多行字符串简写

需要输出多行字符串,需要使用+来拼接:

const lorem = 'Lorem ipsum dolor sit amet, consectetur\n\t'
   + 'adipisicing elit, sed do eiusmod tempor incididunt\n\t'
   + 'ut labore et dolore magna aliqua. Ut enim ad minim\n\t'
   + 'veniam, quis nostrud exercitation ullamco laboris\n\t'
   + 'nisi ut aliquip ex ea commodo consequat. Duis aute\n\t'
   + 'irure dolor in reprehenderit in voluptate velit esse.\n\t'

使用反引号,则可以达到简写作用:

const lorem = `Lorem ipsum dolor sit amet, consectetur
   adipisicing elit, sed do eiusmod tempor incididunt
   ut labore et dolore magna aliqua. Ut enim ad minim
   veniam, quis nostrud exercitation ullamco laboris
   nisi ut aliquip ex ea commodo consequat. Duis aute
   irure dolor in reprehenderit in voluptate velit esse.`


对数字数组进行排序

JavaScript 数组有内置的 sort 方法。默认情况下 sort 方法把数组元素转换为字符串,并对其进行字典排序。在对数字数组进行排序时,这有可能会导致一些问题。所以下面是解决这类问题的简单解决方案。

[0,10,4,9,123,54,1].sort((a,b) => a-b);
>>> [0, 1, 4, 9, 10, 54, 123]

这里提供了一个将数字数组中的两个元素与 sort 方法进行比较的函数。这个函数可帮助我们接收正确的输出。


+单行 +代码 +函数 +经典 +方法

本页Url

↖回首页 +当前续 +尾续 +修订 +评论✍️


👍4 仁智互见 👎0
  • 还没有评论. → +评论
  • -loading- -loading- -loading-


    🔗 连载目录

    🤖 智能推荐

    + 细胞壁 细胞壁
    AddToFav   
    新闻 经典 官宣