我写了一段简单的代码来比较随机数组的差异,发现了一些我不太了解的东西。
我本来希望结果是接近0.5的随机数,但实际上是0.3333。
为什么随机数数组位于0.3而不是0.5上?
const result = document.getElementById('result');
const generateRandomNrArray = (nrNumbers) => {
let i;
let result = [];
for (i = 0; i < nrNumbers; i++) {
result.push(Math.random());
}
return result;
}
const getArrayDiff = (arr1, arr2) => {
var diff = 0;
arr1.forEach(function (v1, index) {
diff += Math.abs(v1 - arr2[index]);
});
return diff;
}
const run = (nr) => {
const arr1 = generateRandomNrArray(nr);
const arr2 = generateRandomNrArray(nr);
const totalDiff = getArrayDiff(arr1, arr2);
result.innerHTML …Run Code Online (Sandbox Code Playgroud)我开发了一个Android设备的应用程序,并发现特别是三星galaxy S4,当应用程序/网页使用画布时性能极差.奇怪的是,情况并非如此.
我测试了2个示例应用程序.
http://ie.microsoft.com/testdrive/Performance/FishIETank/Default.html
和
http://ie.microsoft.com/testdrive/Graphics/TouchEffects/Default.html
第一个工作正常,并且优于我的诺基亚(这是双核)并且是预期的.但是,另一个演示几乎完全没有响应,帧速率接近1,所有其他设备都可以正常运行.
由于第一个应用程序运行良好而另一个应用程序运行良好,因此它提出了问题,为什么?第一个没有事件监听器,而另一个没有事件监听器.可能touchmove是原因而不是画布...或者是使用一些画布功能的演示,而另一个不是,因此性能很差.
我已经阅读了很多关于这个问题的主题,似乎没有人回答.大多数都是几个月......所以我认为生病是一个新话题.
有没有办法解决三星S4上的画布问题...以及可能运行4.2.x的其他Android设备.如果此处的任何StackOverflow用户都有S4,您可以测试这两个演示并确认我的观察结果吗?
在mongodb中是否有一种方法可以在更新期间使用if/else设置字段值.我知道我可以使用find,返回文档,循环遍历它们,并对每个文档执行if/else检查并为每个文档创建一个新的保存查询.
但是,如果有一种方法可以一次性有条件地更新,那么这似乎很浪费.
是否可以有条件地设置字段值,例如像这样
Documents.update(
{some_condition: true},
{$set: {"status":
{$cond:
{if : {"some field": "some condition"}},
{then: "value 1"} ,
{else: "value 2"}
}
}}
)
Run Code Online (Sandbox Code Playgroud)
(我知道$ condis用于聚合,我在这里用它作为我想到的一个例子.)
我注意到,只要我的服务器处于脱机状态,并且我将其重新联机,就会收到大量的套接字事件,这些事件在服务器关闭时被触发.(现在已经过时的事件).
有没有办法阻止socket.io在没有收到x秒的响应后重新发出事件?
我一直在寻找试图找到有关如何使用用户角色制作典型网站MVC权限系统的教程的时间。
我已经使用SQL和关系完成了这些事情,但是在nosql数据库中,它的执行方式有所不同(我认为)。
我的想法是这样的
//Role objects
{Roles : [
{
'_id' : 'uniqueId',
'role_name' : 'admin',
'permissions_granted' : [array of permission strings]
},
{
'_id' : 'uniqueId',
'role_name' : 'user',
'permissions_granted' : [array of permission strings]
},
{
'_id' : 'uniqueId',
'role_name' : 'guest',
'permissions_granted' : [array of permission strings]
}
]}
//User objects
{Users: [
{
'_id' : 'uniqueId',
'username' : 'mike',
'password' : 'mypass',
'permissions' : [an instance of role group, or its id ? ]
},
{
'_id' …Run Code Online (Sandbox Code Playgroud) 我的 TS 回调有一个简单的问题。
我有这样的功能
...
//inside a class
//function is supposed to optionally accept any callback function
refreshConnection(callback?:Function) {
//do something
//then call the passed callback with no params
callback();
}
...
//in another component, i call this function like so
this.myclass.refreshConnection( () => {
window.location.reload();
});
//but i get an error saying that the function parameter does not match a signature.
// i also tried callback?: (...args: any[]) => any but nothing.
ERROR in ./src/app/fb_connect.component.ts
Module build failed: Error: …Run Code Online (Sandbox Code Playgroud) 我正在开发一个角度app/site,现在才意识到每当触发模型更改/摘要时,它会导致整个页面重新渲染,这看起来很浪费而且很慢.
有没有办法导致/限制摘要只影响它使用的指令/控制器.
例如,如果我有一个带有$ interval的"clock"指令来计算页面上的毫秒数
$scope.page_stats = {"ms_on_page": 0};
$interval(function() {
$scope.page_stats.ms_on_page+= 30;
}, 30);
Run Code Online (Sandbox Code Playgroud)
我的应用程序布局看起来像这样
<body>
<clock-directive></clock-directive>//<--gets rendered every 30ms
some other html
<some-slow-render-directive></some-slow-render-directive>
// ^-- also gets rendered every 30ms
</body>
Run Code Online (Sandbox Code Playgroud)
我如何阻止慢指令每30ms更新一次自己/它的模板,并将时钟间隔摘要限制为时钟指令,因为我知道它不会在页面的任何其他部分使用.(这不是我的实际应用,只是一个示例来说明我的问题)
见下面的代码
var arr = await [1,2,3,4,5].map(async (index) => {
return await new Promise((resolve, reject) => {
setTimeout(() => {
resolve(index);
console.log(index);
}, 1000);
});
});
console.log(arr); // <-- [Promise, Promise, Promise ....]
// i would expect it to return [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
快速编辑:通过说map对异步功能没有做任何特殊的事情,可接受的答案是正确的。我不知道为什么我认为它可以识别异步fn并知道等待响应。
也许我期待这样的事情。
Array.prototype.mapAsync = async function(callback) {
arr = [];
for (var i = 0; i < this.length; i++)
arr.push(await callback(this[i], i, this));
return arr;
};
var arr = await [1,2,3,4,5].mapAsync(async (index) => {
return await new Promise((resolve, reject) => …Run Code Online (Sandbox Code Playgroud) javascript ×8
mongodb ×2
node.js ×2
android ×1
angularjs ×1
async-await ×1
callback ×1
canvas ×1
database ×1
html ×1
html5 ×1
math ×1
mobile ×1
mongoose ×1
nosql ×1
permissions ×1
promise ×1
random ×1
signature ×1
socket.io ×1
statistics ×1
typescript ×1
websocket ×1