小编fen*_*ent的帖子

生成列表的所有可能排列的算法?

说我有一个n个元素的列表,我知道有n个!订购这些元素的可能方式.生成此列表的所有可能排序的算法是什么?例如,我有列表[a,b,c].该算法将返回[[a,b,c],[a,c,b,],[b,a,c],[b,c,a],[c,a,b],[c,b , 一个]].

我在这里阅读 http://en.wikipedia.org/wiki/Permutation#Algorithms_to_generate_permutations

但维基百科从未擅长解释.我不太了解它.

algorithm list permutation

113
推荐指数
8
解决办法
20万
查看次数

使Java模数的行为与负数一样的最佳方法是什么?

在java时你这样做

a % b
Run Code Online (Sandbox Code Playgroud)

如果a是负数,它将返回负结果,而不是像它应该那样回绕到b.解决这个问题的最佳方法是什么?我能想到的唯一方法就是

a < 0 ? b + a : a % b
Run Code Online (Sandbox Code Playgroud)

java modulo negative-number

95
推荐指数
5
解决办法
4万
查看次数

如何将github上的问题转移到另一个回购?

它时不时地发生.某些库依赖于另一个库,并且用户打开属于错误仓库的问题.我可以将问题转移到其他回购中吗?

你可以说这个问题可以看作是两个回购问题,因为一个人依赖于另一个,只要一个人不能正常工作,两者都不会.但我宁愿谈论它所属的回购中的问题的解决方案.

github

89
推荐指数
4
解决办法
2万
查看次数

如何使用Javascript检测Chrome中何时关注标签?

我需要知道用户当前是否正在Google Chrome中查看标签.我试图将事件模糊和焦点绑定到窗口,但只有模糊似乎正常工作.

window.addEventListener('focus', function() {
  document.title = 'focused';
});

window.addEventListener('blur', function() {
  document.title = 'not focused';
});
Run Code Online (Sandbox Code Playgroud)

焦点事件很奇怪,只是有时候.如果我切换到另一个选项卡并返回,焦点事件将不会激活.但是,如果我点击地址栏然后返回页面,它就会.或者,如果我切换到另一个程序然后返回到Chrome,则会激活该选项卡当前是否已关注.

javascript google-chrome focus

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

如何配置jshint不给我错误"以前断线"?

它给了我错误"之前坏线断线",因为我有如下代码

var one = 1
  , two = 2
  , three = 3
  ;
Run Code Online (Sandbox Code Playgroud)

如果我把它,放在行的末尾而不是下一行的开头,它就不会抱怨.但我想以这种方式编码.有没有办法让它不显示这个警告?

我查看了JSHint的选项,但没有任何与此错误相关的内容.

javascript jshint

33
推荐指数
2
解决办法
2万
查看次数

如何检查JavaScript中是否加载了变量?

如何查看某个对象是否已加载,如果没有加载,如何加载,如下所示?

if (!isObjectLoaded(someVar)) {
    someVar= loadObject();
}
Run Code Online (Sandbox Code Playgroud)

javascript object

25
推荐指数
3
解决办法
7万
查看次数

如何在创建过程中引用相同的Object属性?

我正试着做些喜欢的事情

o = {
  a: { foo: 42 },
  b: o.a
}
Run Code Online (Sandbox Code Playgroud)

但是这会返回一个错误,表示o未定义.我知道我以后可以做ob = oa但是我想知道在我定义o时是否可以定义b.

javascript object

25
推荐指数
3
解决办法
1万
查看次数

移动存储库后,git diff报告模式发生了变化

我通过复制到外部硬盘将一堆我的git存储库移动到另一个操作系统.现在,当我这样做时git diff,报告所有文件模式都已更改.

diff --git a/.gitignore b/.gitignore
old mode 100644
new mode 100755
diff --git a/.npmignore b/.npmignore
old mode 100644
new mode 100755
diff --git a/.travis.yml b/.travis.yml
old mode 100644
new mode 100755
diff --git a/LICENSE b/LICENSE
old mode 100644
new mode 100755
diff --git a/README.md b/README.md
old mode 100644
new mode 100755
Run Code Online (Sandbox Code Playgroud)

我对文件权限知之甚少,我该怎么办呢?

提交模式更改?为所有非可执行文件更改模式?git重置?

git

20
推荐指数
2
解决办法
5844
查看次数

如何调用同一对象内的对象的函数?

我有以下Javascript代码

add_num = {
  f: function(html, num) {
    alert(this.page);
  },

  page : function() {
    return parseInt(this.gup('page'));
  },

  gup : function(name) {
    name = name.replace(/[\[]/,'\\\[').replace(/[\]]/,'\\\]');
    var regex = new RegExp('[\\?&]'+name+'=([^&#]*)');
    var results = regex.exec(window.location.href);
    if(results == null)
      return '';
    else
      return results[1];
  }
}
Run Code Online (Sandbox Code Playgroud)

但是当我调用add_num.f()时,我从alert()获得的是实际的页面代码.也就是说,它返回

function() {
    return parseInt(this.gup('page'));
  }
Run Code Online (Sandbox Code Playgroud)

我期待一个数值而不是任何代码.

javascript oop

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

有什么方法可以在Javascript数组中为延迟变量定义getter?

我正在尝试将元素添加到延迟评估的数组中.这意味着在访问它们之前,不会计算或知道它们的值.这就像我之前提出的问题,但对象是对象.

我最终为对象做的是

Object.prototype.lazy = function(var_name, value_function) {
  this.__defineGetter__(var_name, function() {
    var saved_value = value_function();
    this.__defineGetter__(var_name, function() {
      return saved_value;
    });
    return saved_value;
  });
}

lazy('exampleField', function() {
  // the code that returns the value I want
});
Run Code Online (Sandbox Code Playgroud)

但我还没有找到一种方法来为真正的数组做这件事.数组没有这样的setter.您可以将函数推送到数组,但是您必须将其作为函数调用它来返回您真正想要的对象.我现在正在做的是创建了一个我将其视为数组的对象.

Object.prototype.lazy_push = function(value_function) {
  if(!this.length)
    this.length = 0;
  this.lazy(this.length++, value_function);
}
Run Code Online (Sandbox Code Playgroud)

所以我想知道的是,还有一种方法可以在数组上执行此操作而不是假数组吗?

更新:以下函数仅在value_function返回基本数据类型时有效.

Array.prototype.lazy_push = function(value_function) {
  var a = this,
  i = this.length;
  this.push({
    toString: function() {
      return a[i] = value_function();
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

如果您尝试推送一个包含属性的对象,则在直接访问该对象之前,您将无法访问这些属性.这不会发生在setter中,这就是为什么我想要一些Javascript的设置语法.现在我将使用假阵列,这对我正在做的事情已经足够了.

javascript arrays lazy-evaluation

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