小编Rai*_*mer的帖子

有关JavaScript Math.random()和基本逻辑的问题

我写了一段简单的代码来比较随机数组的差异,发现了一些我不太了解的东西。

  1. 我生成2个充满随机数的数组
  2. 将随机数之间的差相加
  3. 打印出平均差异

我本来希望结果是接近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)

javascript random math statistics

32
推荐指数
2
解决办法
2010
查看次数

渲染画布元素时,某些Android设备速度极慢

我开发了一个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,您可以测试这两个演示并确认我的观察结果吗?

javascript mobile html5 android canvas

12
推荐指数
1
解决办法
3672
查看次数

mongodb在文档更新期间使用if else设置字段值

在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用于聚合,我在这里用它作为我想到的一个例子.)

javascript mongoose mongodb node.js

6
推荐指数
2
解决办法
6219
查看次数

socket.io在x秒/第一次失败尝试获得响应后停止重新发出事件

我注意到,只要我的服务器处于脱机状态,并且我将其重新联机,就会收到大量的套接字事件,这些事件在服务器关闭时被触发.(现在已经过时的事件).

有没有办法阻止socket.io在没有收到x秒的响应后重新发出事件?

javascript websocket node.js socket.io

6
推荐指数
1
解决办法
2751
查看次数

如何在mongodb / nosql中创建用户角色和权限

我一直在寻找试图找到有关如何使用用户角色制作典型网站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)

javascript database permissions mongodb nosql

5
推荐指数
1
解决办法
2192
查看次数

TypeScript 可选回调参数与传递给它的匿名函数不匹配

我的 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)

javascript callback signature typescript

2
推荐指数
1
解决办法
4787
查看次数

如何将角度摘要限制为仅影响/重新渲染一个组件/指令

我正在开发一个角度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更新一次自己/它的模板,并将时钟间隔摘要限制为时钟指令,因为我知道它不会在页面的任何其他部分使用.(这不是我的实际应用,只是一个示例来说明我的问题)

html javascript angularjs

1
推荐指数
1
解决办法
1386
查看次数

为什么异步数组映射返回承诺而不是值

见下面的代码

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 promise async-await

1
推荐指数
1
解决办法
254
查看次数