如何使用SolverJS
SolverJS是一个JavaScript库,它包含许多在任何应用中经常使用的数学和基本逻辑函数。它旨在通过简单调用某些函数来轻松解决逻辑问题,所有函数都是时间和空间高效的。它具有各种用例,例如与转换有关的操作,矩阵运算,基本字符串操作以及数学实用程序,如最大公约数、幂、素数检查等。在本文中,我们将讨论使用这个库的方法,以及一些可以使用它的问题陈述。
让我们逐步实施以了解如何使用这个库,并且在文章结尾时,您将对在项目中使用它感到非常舒适。
步骤1: 创建一个Node应用程序。由于我们将使用在node.js上工作的库,因此首先创建一个node项目是强制的。因此,请在终端中输入以下命令创建一个node应用程序。
语法:
npm init
此命令将询问与项目有关的几个配置,您可以很容易地填写它们,如果您不小心按下某个字段的回车键或者您想要更改某些内容,您总是可以稍后从 package.json 文件中更改这些配置。
步骤2: 使用npm安装库。在终端中运行此命令使用node包管理器安装库,如果您使用yarn包管理器,则使用”yarn add”而不是”npm install”。
语法:
npm install solverjs
步骤3: 将其导入到您的应用程序文件中。创建一个JavaScript文件,我们将其命名为 app.js , 并在使用之前在您的代码中引入该库。下面给出了在节点应用程序中导入库的语法。我们在require关键字的括号中提供库的名称,然后将结果存储在一个const变量中。
const solverjs = require('solverjs');
项目结构:
这将是我们的文件夹结构,在整个文章中,我们将使用这个app.js。
步骤4: 调用相关函数并使用。现在我们将创建一个函数并开始在我们的项目中使用该库。
注意: 在第1步和第2步之后,您可以调用库中的任何可用函数,并提供所需的参数,该函数将返回适当的结果。
例如,如果您想计算一个数组的平均值,只需调用avg([array])函数,它将返回平均值。
app.js
//Import the library
const solverjs = require('solverjs');
const myArray = [5,2,1,8,4];
//Call function
const calculatedAverage = solverjs.avg(myArray);
console.log(calculatedAverage);
运行应用程序的步骤: 打开终端并输入以下命令。
node app.js
输出: 这是上述代码的输出结果。
现在让我们通过示例来看看我们可以在哪些使用领域使用这个库。
1. 转换: 该库包含许多与将一个物理单位转换为另一个单位相关的函数,我们的应用程序在各种情况下都需要进行这些转换,因此我们只需简单地调用一个函数就可以实现我们的目标。该类别中每个函数的基本结构如下所示:
Name: someUnitToAnotherRequiredUnit()
Argument: valueInGivenUnit
Return Value: valueInRequiredUnit
1.1 长度相关的转换:
示例1: 在这里,我们将码转换为米,函数ydToMe()接收码的长度并返回以米为单位的长度。在获取结果后,我们只是使用console.log和模板文字将其打印出来。
注意:如果您不知道模板文字,请允许我告诉您,它用于在ES6中生成动态字符串,并且您可以在 ${} 内嵌入JavaScript表达式。
app.js
const solverjs = require('solverjs');
const lengthInYard = 5;
const lengthInMetre = solverjs.ydToMe(lengthInYard);
console.log(`{lengthInYard} 码 ={lengthInMetre} 米`);
输出:
* 示例2: 在这里,我们将英尺转换为厘米,函数ftToCm()接收英尺的长度并返回以厘米为单位的长度。
app.js
const solverjs = require('solverjs');
const lengthInFeet = 2;
const lengthInCentimetre = solverjs.ftToCm(lengthInFeet);
console.log(`{lengthInFeet} 英尺 ={lengthInCentimetre} 厘米`);
输出:
1.2 面积相关的转换:
示例1: 在这里,我们将平方米转换为平方英寸,函数sqMeToSqIn()接收平方米的面积并返回以平方英寸为单位的面积。
app.js
const solverjs = require('solverjs');
const areaInSquareMetre = 25;
const areaInSquareInch = solverjs.sqMeToSqIn(areaInSquareMetre);
console.log(`{areaInSquareMetre} 平方米 ={areaInSquareInch} 平方英寸`);
输出:
示例2: 在这里,我们将公顷转换为平方千米,函数hectToSqKm()接收公顷的面积并返回以平方千米为单位的面积。
app.js
const solverjs = require('solverjs');
const areaInHectare = 2;
const areaInSquareKilometre = solverjs.hectToSqKm(areaInHectare);
console.log(`{areaInHectare} 公顷 ={areaInSquareKilometre} 平方千米。`);
输出:
1.3 数字存储相关的转换:
示例1: 这里我们将字节转换为位,函数byteToBit()接收字节的内存并返回位的内存。
app.js
const solverjs = require('solverjs');
const storageInByte = 600;
const storageInBit = solverjs.byteToBit(storageInByte);
console.log(`{storageInByte} 字节 ={storageInBit} 位`);
输出:
示例2: 这里我们将千兆字节转换为千字节,函数gbToKb()接收千兆字节的内存并返回千字节的内存。
app.js
const solverjs = require('solverjs');
const storageInGigaByte = 1.5;
const storageInKiloByte = solverjs.gbToKb(storageInGigaByte);
console.log(`{storageInGigaByte} gb ={storageInKiloByte} kb`);
输出:
1.4 时间相关转换:
示例1: 这里我们将纳秒转换为微秒,函数nsToUs()接收以纳秒为单位的时间并返回以微秒为单位的时间。
app.js
const solverjs = require('solverjs');
const timeInNanoSecond = 1500;
const timeInMicroSecond = solverjs.nsToUs(timeInNanoSecond);
console.log(`{timeInNanoSecond} ns ={timeInMicroSecond} 微秒`);
输出:
示例2: 这里我们将纳秒转换为月份,函数nsToMm()接收以纳秒为单位的时间并返回以月份为单位的时间。
app.js
const solverjs = require('solverjs');
const timeInNanoSecond = 200000000;
const timeInMonth = solverjs.nsToMm(timeInNanoSecond);
console.log(`{timeInNanoSecond} ns ={timeInMonth} 月`);
输出:
1.5 温度相关转换:
示例1: 在这里,我们将摄氏度转换为开尔文,函数celToKel()将接收摄氏度温度并返回开尔文温度。
app.js
const solverjs = require('solverjs');
const temperatureInCelsius = 4;
const temperatureInKelvin = solverjs.celToKel(temperatureInCelsius);
console.log(`{temperatureInCelsius}摄氏度 ={temperatureInKelvin}开尔文`);
输出:
示例2: 在这里,我们将开尔文转换为华氏度,函数kelToFah()将接收开尔文温度并返回华氏温度。
app.js
const solverjs = require('solverjs');
const temperatureInKelvin = 500;
const temperatureInFahreinheit = solverjs.kelToFah(temperatureInKelvin);
console.log(`{temperatureInKelvin}开尔文 ={temperatureInFahreinheit}华氏度`);
输出:
此库中提供了许多转换方法,这里没有使用,但是语法、使用方式和工作方式保持相同,所以您可以自己很容易地探索其中的内容。
2. 数字转换系统: 本类别中有许多与将数字从一种数字系统转换为另一种数字系统相关的函数。每个函数的基本结构如下:
Name: numberInOneNumberSystemToNumberInAnotherNumberSystem()
Argument: numberInGivenNumberSystem
Return Value: numberInRequiredNumberSystem
下面是不同进制之间进行转换的两个示例。
示例1: 这里我们将一个十六进制数转换为八进制,函数hexToOct()接收十六进制数并返回八进制数。
app.js
const solverjs = require('solverjs');
const hexNumber = '12A';
const octNumber = solverjs.hexToOct(hexNumber);
console.log(`{hexNumber} in hexadecimal = 0o{octNumber} in octal`);
输出结果:
示例2: 在这里,我们将一个十进制数转换为二进制数,函数decToBin()接收一个十进制数,并返回一个二进制数。
app.js
const solverjs = require('solverjs');
const decimalNumber = 25;
const binaryNumber = solverjs.decToBin(decimalNumber);
console.log(`{decimalNumber} in decimal ={binaryNumber} in binary`);
输出:
3.矩阵操作: 矩阵操作在任何应用中都非常常见,该库提供了各种函数来操作矩阵。下面是两个常见的实例,矩阵的加法和减法。
示例: 在程序开始时,我们创建了两个矩阵来执行操作,
matAdd()函数接收两个矩阵作为参数,并返回这些矩阵的加法,我们将结果存储在一个变量中。matSub()函数也接收两个矩阵作为参数,并返回第二个矩阵减去第一个矩阵的结果,我们也将结果存储在另一个变量中。在程序的最后,我们只是打印这些创建的变量,实际上它们是二维数组,所以我们可以运行一个for循环来打印整个数组。
app.js
const solverjs = require('solverjs');
const matrix1 = [
[1,2,4],
[6,3,9],
[9,5,5]
];
const matrix2 = [
[3,1,9],
[10,12,2],
[19,8,5]
];
const matrixSum12 = solverjs.matAdd(matrix1, matrix2);
const matrixSubtract12 = solverjs.matSub(matrix1, matrix2);
console.log("Sum of Given Matrices");
for(let i = 0;i<3;i++) console.log(matrixSum12[i]);
console.log("Subtraction of 2nd matrix from 1st");
for(let i = 0;i<3;i++) console.log(matrixSubtract12[i]);
输出:
4. 数学逻辑: 编程中到处都是数学,我们经常需要它。solverJS提供了很多函数,以下是5个示例,
示例1: 这里我们正在查找一个数字是否是回文数,函数isPalindrome()接收一个数字,并根据数字是回文数还是非回文数返回true或false。我们使用三元运算符来简单地在true或false时执行一段代码。在我们的示例中,第一个console.log语句将被执行。
app.js
const solverjs = require('solverjs');
const num1 = 12233221;
solverjs.isPalindrome(num1) ? console.log(`{num1} is Palindrome`) :
console.log(`{num1} is not Palindrome`);
输出:
示例2: 在这个示例中,我们要找到一个与给定数字相反的数字,函数reverse()接收一个数字,并根据给定的数字返回相反的数字。
app.js
const solverjs = require('solverjs');
const num2 = 43215;
const num2Reverse = solverjs.reverse(num2);
console.log(`Reverse of {num2} is{num2Reverse}`);
输出 :
示例3: 在这里,我们要找到给定数字的阶乘,fac()这个函数接收一个数字并返回阶乘。
app.js
const solverjs = require('solverjs');
const num6 = 8;
const num6Factorial = solverjs.fac(num6);
console.log(`Factorial of {num6} is{num6Factorial}`);
输出:
此外,该库还提供了许多未在此处使用的方法,例如幂函数、打印斐波那契序列、查找斐波那契数、计算模等。
5. 字符串操作: 以下是一些与字符串操作相关的函数,第一个示例中,我们在给定的句子中找到了总单词数,在第二个示例中,我们在给定的单词上找到了总排列数。
示例1: 这里我们在给定的字符串中找到了单词的数目,wordCount()函数接收一个字符串和一个分隔符,然后通过提供的分隔符将字符串分割成单词。最后,它返回单词的数目。
app.js
const solverjs = require('solverjs');
const myString = "GFG provides best content for Computer Science students & developers";
const totalWords = solverjs.wordCount(myString, ' ');
console.log(`Total words in given sentence are ${totalWords}`);
输出: 在这里,我们将句子按空格“”分开并计算总共有多少个单词。
示例2:
在这里,我们要找到一个字符串的所有排列,函数permutation()接收一个字符串,并返回一个包含该给定字符串的所有排列的数组。
app.js
const solverjs = require('solverjs');
const anotherString = "GFG";
const totalPermutations = solverjs.permutation(anotherString);
console.log(`Total permutations of 'GFG' are ${totalPermutations}`);
输出:
6. 其他实用程序: 一些经常使用的额外逻辑,例如,这是两个示例中的一个,在第一个示例中我们正在查找给定日期的日期,必须以“dd/mm/yyyy”格式,并且在第二个示例中我们正在计算年龄或可以说是当前日期与给定日期之间的差异。
示例1: 在这里,我们正在计算给定数据上的日期,dateToDay()函数接收一个日期作为参数,并返回该日期上发生的日期。
app.js
const solverjs = require('solverjs');
const date = "28/07/2021";
const day = solverjs.dateToDay(date);
console.log(`There is {day} on{date}`);
输出:
示例2: 在这里我们根据给定的出生日期计算年龄。函数dobToAge()接收一个参数,“dd/mm/yyyy”格式的日期。它计算并返回当前日期与给定日期之间的差值。
app.js
const solverjs = require('solverjs');
const dateOfBirth = "25/01/2001";
const calculatedAge = solverjs.dobToAge(dateOfBirth);
console.log(`The age according to DOB {dateOfBirth} is{calculatedAge}`);
输出:
不仅仅是这些,SolverJS还包含了更多的方法,超出了我们所解释的范围,你可以从它们的 包文档 中检查所有方法。