小编aba*_*haw的帖子

JS - 基于密度的精细点数

假设我有一个如下数组(每个小数组[x, y]):

var myPoints = [[25, 28], [26, 26], [70, 40], [50, 50], [300, 300], [285, 350], [1000, 1000]];
Run Code Online (Sandbox Code Playgroud)

假设我需要将阵列缩小到4分.(这是一个小例子,我的实际阵列有几千个点)我怎样才能根据密度对阵列进行细化,以便从点距离较近的区域中移除更多的点,从较低密度的区域移除较少的点?

在这种情况下(将上面的数组从8项减少到4项)我希望返回的数组看起来如下所示:

var thinnedPoints = [[25, 28], [70, 40], [300, 300], [1000, 1000]];
Run Code Online (Sandbox Code Playgroud)

关于如何处理这个问题的想法是生成一个字典,将点映射到它与另一个点的最小距离(例如,靠近另一个点的点将具有较小的最小距离)然后根据递增的最小距离对字典进行排序,然后删除字典中的每个n'tn项.

这种方法的问题是我不知道如何有效地为每个点生成距离最近的其他点值的距离.

有没有一种有效的方法来生成这些值,或者是否有另一种方法来处理这种基于密度的细化问题?

谢谢!

javascript arrays

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

Javascript从加载的img中提取响应标头

我有一个服务器端应用程序,它将返回图像以及响应标头中的一些 JSON 数据。

在客户端我有一个简单的 html 页面。想象一下我加载图像如下:

<img src="http://www.myserverapp.com/image1" />

在同一页面上,是否可以使用一些 JavaScript 来提取浏览器在加载页面时请求该图像时返回的响应标头?如果是这样-这该怎么办?

另一种方法是将图像和 JSON 数据分成两个单独的资源,并让 javascript 向服务器发送单独的数据请求,但我在想是否图像和 JSON 数据都可以作为浏览器的一部分返回图像请求可能会提高性能并使事情变得更加简化。

谢谢!


编辑:我不想使用 javascript 动态加载图像 - 我知道我可以这样做,然后以这种方式提取标头信息,但我正在寻找一种解决方案,其中浏览器正常加载图像,然后一些 javascript 代码追溯并找出浏览器发出的图像请求的响应标头。

html javascript

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

javascript在嵌套对象/数组中按值查找

你好,我在函数中返回一个对象有一个问题,假设我有一个对象:

var elements = [{
    "fields": null,
    "id_base": "nv_container",
    "icon": "layout",
    "name": "container",
    "is_container": true,
    "elements" : [
        //another elements set here
    ]
}, 
{
    "id_base": "novo_example_elementsec",
    "name": "hello",
    "icon": "edit",
    "view": {}
}];
Run Code Online (Sandbox Code Playgroud)

我想要的是一个函数(使用纯JavaScript),可以找到具有特定键和值的对象,而我已经创建了一个函数,但它不能正常工作?,我的功能:

function findNested(obj, key, value) {
    //Early return
    if (obj[key] === value) {
        console.log( 'before return' ); //until here . its fine
        return obj; //not working
    } else {
        for (var i = 0, len = Object.keys(obj).length; i <= len; i++) {
            if (typeof obj[i] …
Run Code Online (Sandbox Code Playgroud)

javascript return function javascript-objects

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

在Lua中将数组作为函数参数传递?

我正在尝试更改我在此视频中找到的类示例,以使其更加流线型使用.希望我的评论可以解释我正在努力完成的事情.我遇到的问题是当我尝试使用数据表时它会给我这个错误:lua:class example.lua:7:尝试索引字段'data'(一个零值)

我假设这意味着数组没有正确传递给函数,但我不知道为什么.我是Lua的初学者.

这是我得到的:

local enemy = {}; --enemy class table

function enemy:New(data)
  local object = {}; --table to store all of data within class
  local len = # data --get length of passed table
  for i = 1, len, 2 do --loop to input all data from passed table into object table
    object.data[i] = data[i + 1];
  end

  function object:getData(choice) --function that allows us to retrieve data from the class
    return self[choice];
  end

  return object; --return class …
Run Code Online (Sandbox Code Playgroud)

arrays parameters lua class function

5
推荐指数
2
解决办法
8674
查看次数

在删除项目时多次迭代数组的最快方法

想象一下,我有一组数字如下:

var myArray = [1, 2, 3, 4, 5];

这是一个简化,我的实际案例场景要大得多(60K或更多项目).

基本上我需要完全遍历数组以处理一些数字,然后完全迭代数组,直到所有数字都被处理完毕(比如我可以在第一次迭代时处理1和3以及2,4和5)在第二个).编辑:他们不必按顺序排列.

我想知道的是 - 我需要这样做,以便在之前的迭代中已经处理过的项目不再被考虑.

我的问题是:执行此操作的最快方法是什么,每个ms都很重要,因为这是大规模完成的.

我已经尝试删除已经处理的项目,myArray = myArray.splice(i, 1)但这非常慢.我还尝试将处理过的项目设置为null然后忽略null后续迭代中的项目.这种方法似乎工作得更快但仍需要一两秒钟.有更快的方法吗?

javascript arrays

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

nvidia-docker中的TensorFlow:对cuInit的调用失败:CUDA_ERROR_UNKNOWN

我一直在努力获取依赖TensorFlow的应用程序,以与作为Docker容器一起使用nvidia-docker。我已经在tensorflow/tensorflow:latest-gpu-py3图像之上编译了我的应用程序。我使用以下命令运行Docker容器:

sudo nvidia-docker run -d -p 9090:9090 -v /src/weights:/weights myname/myrepo:mylabel

通过portainer查看日志时,我看到以下内容:

2017-05-16 03:41:47.715682: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-05-16 03:41:47.715896: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-05-16 03:41:47.715948: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use …
Run Code Online (Sandbox Code Playgroud)

python gpu nvidia docker tensorflow

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

Redis 加载 Lua 脚本并从文件中缓存它(而不是 SCRIPT LOAD)

我知道运行 Lua 脚本的常用方法EVALSHA是首先通过将脚本传递给SCRIPT LOAD. 但是,据我了解,如果 Redis 服务器意外重启,例如,缓存的脚本将不再存在,必须重新加载SCRIPT LOAD.

有没有办法设置 Redis 服务器在启动时自动将一些指定的 Lua 脚本从文件加载到它的缓存中这样它们就可以可靠地执行而EVALSHA不必担心脚本可能被卸载?

lua caching redis

5
推荐指数
2
解决办法
3368
查看次数

VueJS 是否保证以正确的顺序调用 Mounted() ?

假设我有一个使用 VueJS 的基本页面,如下所示:

Vue.component('child', {
  template: '<p>Placed at index {{index}}</p>',
  data() {
    return {
      index: 0
    }
  },
  mounted() {
    this.index = this.$parent.addElement(this);
  }
});

new Vue({
  el: '#theParent',
  data() {
    return {
      allElements: []
    }
  },
  methods: {
    addElement(elem) {
      this.allElements.push(elem);
      return this.allElements.length - 1;
    }
  }
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdn.jsdelivr.net/vue/2.3.2/vue.min.js"></script>
<div id="theParent">
    <child></child>
    <child></child>
    <child></child>
</div>
Run Code Online (Sandbox Code Playgroud)

输出的目的只是为了说明元素已插入到哪个索引处。我的用例要求元素按照它们在 HTML 中出现的顺序添加。每次我运行此页面时,似乎确实发生了这种情况,因为输出是有序的。

我的问题是:这种行为是否一定会发生——VueJS 是否总是mounted()按照组件在 HTML 中出现的顺序执行?如果没有,是否有其他方法可以保证它们以正确的顺序添加到我的数组中?

html javascript vue.js vuejs2

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

Safari重新加载内存中的视频

在Chrome,一个当<video>与给定创建<source>,视频负载一次,那么任何随后创建的<video>与所述元件相同的 <source>使用中,存储器中的视频(如预期).

在Safari(12.0)上,即使视频已经在内存中,每次重新加载具有相同源的新视频!

console.log("Loading the first video...");  
createVideo("https://ciliar.co/video/beach.mp4", () => {
  console.log("First video fully loaded!");
  
  console.log("Loading the second video...");
  createVideo("https://ciliar.co/video/beach.mp4", () => {
    console.log("Second video fully loaded!");
  });
});


// Helper to create video elements with a given url and call onFullyLoaded once the video can play through fully.
function createVideo(url, onFullyLoaded) {
  const vid = document.createElement("video");
  vid.setAttribute("preload", "auto");
  vid.oncanplaythrough = onFullyLoaded;

  const source = document.createElement("source"); 
  source.type = "video/mp4";
  source.src = url; …
Run Code Online (Sandbox Code Playgroud)

html javascript safari video html5

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

THREE.MultiMaterial已被删除.请改用数组

我已经创建了建筑物的草图模型,并将其导出到.dae纹理文件中.我想使用three.js在浏览器中显示它,但是我收到错误THREE.MultiMaterial has been removed. Use an Array instead.我怎么解决这个问题?

three.js

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