小编Ade*_*lin的帖子

如何有效地检查连续数字列表是否缺少任何元素

我有这个数组

var arr = ["s00","s01","s02","s03","s04","s05","s07","s08","s09","s10","s11","s12","s13","s14","s17","s19","s20","s21","s22","s24","s25","s26","s27","s28","s30","s32","s33","s34","s36","s38","s39","s41","s43","s44","s45","s46","s47","s48","s49","s50","s51","s52","s53","s54","s55","s56","s58","s60","s61","s62","s63","s64","s65","s67","s69","s70"];
Run Code Online (Sandbox Code Playgroud)

我试图找到一种能告诉我哪些s缺失的算法.正如你可以看到,该表包括连续的sS( ,s1,s2等).

起初我使用了这个解决方案:

    var arr = ["s00","s01","s02","s03","s04","s05","s07","s08","s09","s10","s11","s12","s13","s14","s17","s19","s20","s21","s22","s24","s25","s26","s27","s28","s30","s32","s33","s34","s36","s38","s39","s41","s43","s44","s45","s46","s47","s48","s49","s50","s51","s52","s53","s54","s55","s56","s58","s60","s61","s62","s63","s64","s65","s67","s69","s70"];
for (var i=1;i<arr.length;i++){
    var thisI = parseInt(arr[i].toLowerCase().split("s")[1]);
    var prevI = parseInt(arr[i-1].toLowerCase().split("s")[1]);
    if (thisI != prevI+1)
      console.log(`Seems like ${prevI+1} is missing. thisI is ${thisI} and prevI is ${prevI}`)
}
Run Code Online (Sandbox Code Playgroud)

但是这种方法失败了多个连续数字缺失(s15,s16).所以我添加了一个有效的while循环.

var arr = ["s00","s01","s02","s03","s04","s05","s07","s08","s09","s10","s11","s12","s13","s14","s17","s19","s20","s21","s22","s24","s25","s26","s27","s28","s30","s32","s33","s34","s36","s38","s39","s41","s43","s44","s45","s46","s47","s48","s49","s50","s51","s52","s53","s54","s55","s56","s58","s60","s61","s62","s63","s64","s65","s67","s69","s70"];
for (var i=1;i<arr.length;i++){
  var thisI = parseInt(arr[i].toLowerCase().split("s")[1]);
  var prevI = parseInt(arr[i-1].toLowerCase().split("s")[1]);
  if (thisI != prevI+1) {
    while(thisI-1 !== prevI++){
       console.log(`Seems like …
Run Code Online (Sandbox Code Playgroud)

javascript arrays algorithm

28
推荐指数
3
解决办法
2584
查看次数

是否有一种在JavaScript ES6中初始化数组的功能方法?

我终于放弃并编写了一个for循环来初始化一个简单的对象数组,其中每个对象都有一个递增的counter(id)作为对象的属性.换句话说,我只想要:

var sampleData = [{id: 1},{id: 2},...];
Run Code Online (Sandbox Code Playgroud)

我希望有一个紧凑的语法,我可以把它放在我的返回语句上.

let sampleData = [];
for (var p = 0; p < 25; p++){
    sampleData.push({id: p});
}

return {
    data: sampleData,
    isLoading: true
};
Run Code Online (Sandbox Code Playgroud)

javascript functional-programming ecmascript-6

28
推荐指数
4
解决办法
5229
查看次数

有没有办法在运行时获取当前的Mocha实例和编辑选项?

假设你有一个简单的摩卡测试:

describe("Suite", function(){
    it("test",function(doneCallback){
        // here be tests
    });
});
Run Code Online (Sandbox Code Playgroud)

在此测试中,我可以通过添加函数this.timeout(VALUE);内的任何位置来更改超时describe.

但是,除了该timeout值之外,还有许多其他Mocha选项可以从命令行或生成mocha.opts在test文件夹(./test/mocha.opts)中的文件中独占声明.

我想要的是在运行时更改其中一些选项(例如,reporter),而不是在命令行/ mocha.opts文件中.

根据我对可能性的研究,我发现有一篇文章解释了如何以编程方式使用mocha,这将允许在运行时更改这些选项,但是您需要自己创建Mocha实例,而在普通测试中则不会t可以直接访问Mocha实例.

那么,有没有办法Mocha从现有测试中获取实例并reporter在测试期间更改某些选项,例如在运行时?

我想有一个选项,不需要以Mocha任何方式修改源代码(我想我可以篡改Mocha实例来实现一种直接在Mocha构造函数中获取实例的方法).

javascript automation mocha.js

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

什么是中间值?

今天我完全碰到了这个问题:Uncaught TypeError :(中间值)(...)不是函数

所以是的,在适当的位置放置分号后,它不再抛出该错误.但是,我从来不知道javascript中有这样的概念(intermediate value).

显然,您可以使用以下代码生成该错误的类似变体:

[myFunc] = function(someVar){
	
	console.log(someVar);
	return 7;
}();

//error thrown: (intermediate value) is not a function or its return value is not iterable
Run Code Online (Sandbox Code Playgroud)

如果你命名这个函数,它不再是intermediate:

function hi(){return undefined}

[a] = hi(); 

// error thrown: hi is not a function or its return value is not iterable
Run Code Online (Sandbox Code Playgroud)

我理解它指的是中间的东西,但在这种情况下我们有一个匿名函数,并且有方法来确定函数是否是匿名的,因此错误消息可能更明确一些.

搜索js mozilla mdn我找到了这个页面,Array.from可以找到"中间数组"的概念:

更清楚的Array.from(obj, mapFn, thisArg)Array.from(obj).map(mapFn, thisArg),除了不创建中间数组之外,具有相同的结果.

但除了这里和那里的信息之外,还不清楚中间值是什么. …

javascript

11
推荐指数
2
解决办法
8248
查看次数

取消分配flow.js HTML5上传组件上的浏览按钮

使用flow.js组件,我们可以分配一个这样的浏览按钮:

flow.assignBrowse(document.getElementById('browseButton'));
Run Code Online (Sandbox Code Playgroud)

我们可以像这样指定一个放置区域:

flow.assignDrop(document.getElementById('dropTarget'));
Run Code Online (Sandbox Code Playgroud)

我们也可以取消分配这样的放置区域:

flow.unAssignDrop(document.getElementById('dropTarget'));
Run Code Online (Sandbox Code Playgroud)

我的第一个问题是如何取消分配浏览按钮?

我的第二个问题是如何知道(原生)是否已经定义了浏览按钮?

我在文档中看不到任何相关信息.

谢谢.

javascript flow-js

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

为什么不慢于var?

为了使一个极端的总结,之间的差异var,并let是一个范围之内他们的生活.

所以如果我们要从这个答案中得到这样的例子:

(function() {
  for (var i = 0; i < 5; i++) {
    setTimeout(function() {
      console.log(`i: ${i}`);
    }, i * 100);
  }
  // 5, 5, 5, 5, 5


  for (let j = 0; j < 5; j++) {
    setTimeout(function() {
      console.log(`j: ${j}`);
    }, 1000 + j * 100);
  }
  // 0, 1, 2, 3, 4
}());
Run Code Online (Sandbox Code Playgroud)

  • i(声明var)生活在整个function
  • j(声明着let)仅存在于for循环内.

对我来说,这意味着javascript,在每次迭代之后,除了声明和赋值给变量之外,let还需要执行额外的步骤:清理 …

javascript performance var let

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

是否有内置的方法来定义一个带1个参数或3的函数?

在调用type()没有参数的builtin时,Python中存在这个错误:

TypeError: type() takes 1 or 3 arguments
Run Code Online (Sandbox Code Playgroud)

我们如何定义这样的方法?有内置的方式吗?或者我们需要做这样的事情:

>>> def one_or_three(*args):
...   if len(args) not in [1,3]:
...     raise TypeError("one_or_three() takes 1 or 3 arguments")
... 
>>> one_or_three(1)
>>> one_or_three()
TypeError: one_or_three() takes 1 or 3 arguments
>>> one_or_three(1,2)
TypeError: one_or_three() takes 1 or 3 arguments
Run Code Online (Sandbox Code Playgroud)

python function

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

对象在动态类型创建期间被子类化,但在python2中的经典类定义期间不被子类化

我们知道这会创建一个类:

class X:
    a = 1
Run Code Online (Sandbox Code Playgroud)

并且,在Python 3中,由于使用了新的样式类,因此会X自动从继承object,但是在Python 2中,它不会:

>>> X.__bases__ # Python 2
()
>>> X.__bases__ # Python 3
(<class 'object'>,)
Run Code Online (Sandbox Code Playgroud)

我们也知道,我们可以使用类工厂动态创建这样的一个类:

X = type("X",(object,), {"a":1})
      name^   ^bases     ^ "class" body
Run Code Online (Sandbox Code Playgroud)

然而,如果我们忽略了object基地的元组就像我们用做class语法,我们继承object的python3和,出乎意料的是,在python2还有:

X = type("X", ( ), {"a":1})
               ^ empty bases tuple
Run Code Online (Sandbox Code Playgroud)
>>> X.__bases__ # Python 2
(<type 'object'>,)
>>> X.__bases__ # Python 3
(<class 'object'>,)
Run Code Online (Sandbox Code Playgroud)

我期望X.__bases__在python 2中是空的。
而且它不是这样的文档化功能,我几乎无法在Internet上找到有关此功能的信息。

实际上,python的官方文档 …

python class python-2.7 python-3.x

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

获取包含unicode字符超过0xffff的字符串长度

I\xe2\x80\x99m 使用这个字符,双锐号\'\',unicode 是 0x1d12a。
\n如果我在字符串中使用它,我可以\xe2\x80\x99t 获得正确的字符串长度:

\n\n
str = "F"\nstr.length // returns 3, even though there are 2 characters!\n
Run Code Online (Sandbox Code Playgroud)\n\n

如何让函数返回正确的答案,无论 I\xe2\x80\x99m 是否使用特殊的 unicode \xe2\x80\xaf?

\n

javascript unicode

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

如何将带有数组的字符串转换为数组

如何将此响应转换为有效数组?
我想对Object.map数据执行:

var user_roles = "['store_owner', 'super_admin']";
Run Code Online (Sandbox Code Playgroud)

这不是有效的JSON,所以我无法使用 JSON.parse

javascript json

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