我有以下虚拟测试脚本:
function test() {
var x = 0.1 * 0.2;
document.write(x);
}
test();Run Code Online (Sandbox Code Playgroud)
这将打印结果0.020000000000000004,只应打印0.02(如果您使用计算器).据我所知,这是由于浮点乘法精度的误差.
有没有人有一个很好的解决方案,以便在这种情况下,我得到正确的结果0.02?我知道有类似的功能toFixed或舍入将是另一种可能性,但我想真正打印整个数字没有任何切割和舍入.只是想知道你们其中一个人是否有一些漂亮,优雅的解决方案.
当然,否则我会转到大约10位左右.
什么是自然排序.假设我有一个Employee对象,其中包含姓名,年龄和加入日期,按自然顺序排序?
在编写新的jQuery插件时,有一种直接的方法来检查当前版本的jQuery是否高于某个数字?否则显示警告或记录错误.
做一些像这样的事情会很好:
jQuery.version >= 1.2.6
Run Code Online (Sandbox Code Playgroud)
以某种形式.
有没有人有代码来比较JavaScript中的两个版本号?我只想要简单的版本比较(例如"1.0"vs "1.5.6"),它应该与数字或字符串一起使用.它可以忽略尾随的beta标识符"1.5.6b4",但可以预期字符串格式正确.该函数应该返回一个有符号整数,就像普通的cmp函数一样.
function cmpVersion(a, b)
return less than one if a < b
return 0 if a == b
return greater than one if a > b
Run Code Online (Sandbox Code Playgroud)
我有一个答案,但会选择一个比我自己更好或更优雅的解决方案.
(我用它来比较jQuery.browser.version数字,但答案会更广泛适用)
我有一个无序列表,看起来像这样:
1.1.1
1.1.1.1
1.1.2
1.10.1
1.10.2
1.2.1
1.2.2
1.2.3
1.2.4
1.20.1
1.3.1
Run Code Online (Sandbox Code Playgroud)
我想在Javascript中将其排序为"数字"顺序.
1.1.1
1.1.1.1
1.1.2
1.2.1
1.2.2
1.2.3
1.2.4
1.3.1
1.10.1
1.10.2
1.20.1
Run Code Online (Sandbox Code Playgroud)
我需要哪种功能?
嗨,我想根据其中的数字对字符串进行排序,例如
我想以某种方式这样做
我如何在JavaScript中实现它?
我有一个像这样的字符串数组:
const strings = [
"author:app:1.0.0",
"author:app:1.0.1",
"author:app2:1.0.0",
"author:app2:1.0.2",
"author:app3:1.0.1"
];
Run Code Online (Sandbox Code Playgroud)
我想过滤它们,以便只剩下给定“作者:姓名”的最新版本,从而删除不是最新的(即“1.0.1”)。
我的预期结果是这样的:
const filteredStrings = [
"author:app:1.0.1",
"author:app2:1.0.2",
"author:app3:1.0.1"
];
Run Code Online (Sandbox Code Playgroud)
有什么办法可以简单地做到这一点?
我正在编写一个函数来比较2个版本,如果第二个版本比第一个版本大,则返回true.
但我的算法有一个"洞",我无法弄清楚如何修复.
function compareversion(version1,version2){
var result=false;
if(typeof version1!=='object'){ version1=version1.toString().split('.'); }
if(typeof version2!=='object'){ version2=version2.toString().split('.'); }
for(var i=0;i<(Math.max(version1.length,version2.length));i++){
if(version1[i]==undefined){ version1[i]=0; }
if(version2[i]==undefined){ version2[i]=0; }
if(version1[i]<version2[i]){
result=true;
break;
}
}
return(result);
}
Run Code Online (Sandbox Code Playgroud)
这个例子按预期返回
compareversion('1','1') //false
compareversion('1','1.0.0') //false
compareversion('2.0','1.0.0') //false
compareversion('1.1','1.2') //true
compareversion('1','1.0.0.1') //true
Run Code Online (Sandbox Code Playgroud)
但是这个
compareversion('1.1.0','1.0.1') //return true but should be false
Run Code Online (Sandbox Code Playgroud) 是否可以在 Visual Studio Code 中向用户显示您的扩展或颜色主题通知?对于安装了我的颜色主题或扩展并正在获取更新的人,我希望可能在他们更新扩展后向此人显示通知(可能是在 VSCode 启动时,或者在他们进入市场更新后)重新加载扩展和客户端本身。)
例如:我认为,如果他们在更新扩展程序后看到一条通知,上面写着“反馈?建议?修复?......关于主题?”,这对我来说是有益的,而不是侵入性的。或者通知他们主题发生了可能不利的变化。因此,如果他们愿意,他们可以“选择退出”该更改(例如某物周围的一组额外边框或某物的颜色变化。)
显然,关闭所有通知的人不会受到影响,但我认为在罕见的更新后偶尔收到通知也不会太糟糕。我无法找到有关这是否可能的信息,如果可能的话,如何做到这一点。任何有关这方面的信息都将受到赞赏。如果可能的话,那些阅读本文的人,无论您是否已经这样做,您是否会建议以这种方式向您的主题用户显示通知?
谢谢 :)
我有一系列的版本号,如下所示:
[
{
"name": "v12.3.0.pre",
},
{
"name": "v12.2.5",
},
{
"name": "v12.2.4",
},
{
"name": "v12.2.3",
},
{
"name": "v12.2.1",
},
{
"name": "v12.2.0",
},
{
"name": "v12.2.0.pre",
},
{
"name": "v12.2.0-rc32",
},
{
"name": "v12.2.0-rc31",
},
{
"name": "v12.1.9",
},
{
"name": "v12.1.8",
},
{
"name": "v12.1.6",
},
{
"name": "v12.1.4",
},
{
"name": "v12.1.3",
},
{
"name": "v12.1.2",
},
{
"name": "v12.1.1",
},
{
"name": "v12.1.0",
},
{
"name": "v12.1.0.pre",
},
{
"name": "v12.1.0-rc23",
},
{
"name": …Run Code Online (Sandbox Code Playgroud) 所以我有一个信息按钮,每当用户更新扩展时,右上方会显示一个小红点,表示有一个警报(新的更新).


我现在是这样做的,只要在查看更新时在localStorage中设置一行 - 如果找不到该行,则该按钮将具有红点.
问题是,这个解决方案要求我在每次更新后,每次启动更新时都会改变几行,如下所示:
//1.1.2 was the last version
localStorage.removeItem("update-1.1.2");
...
if( localStorage.getItem("update-1.1.3") === null ) {
//show button image with red dot
}
else {
//show button image without red dot
}
...
$('#info').click(function()
{
localStorage.setItem("update-1.1.3", "YES");
//swap the button image w/ red dot, with the same image w/o the red dot
});
Run Code Online (Sandbox Code Playgroud)
如您所见,每次更新时我都必须在3个位置更改"update-xxx"字符串.
所以我的两个问题是: - 有更好的方法吗?也许是一种确定用户是否更新了扩展程序的方法? - 图像交换是解决此问题的最佳方式吗?或者我应该有一个红点图像,使它出现和消失.对我来说,性能差异似乎很小 - 它取决于是否交换整个图像,或者使隐藏/不隐藏另一个图像更有效.
javascript google-chrome local-storage google-chrome-extension
javascript ×11
sorting ×4
arrays ×2
algorithm ×1
comparison ×1
jquery ×1
numerical ×1
string ×1
swap ×1
variables ×1