我有这个数组
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)我终于放弃并编写了一个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) 假设你有一个简单的摩卡测试:
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构造函数中获取实例的方法).
今天我完全碰到了这个问题: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 iterableRun 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 iterableRun Code Online (Sandbox Code Playgroud)
我理解它指的是中间的东西,但在这种情况下我们有一个匿名函数,并且有方法来确定函数是否是匿名的,因此错误消息可能更明确一些.
搜索js mozilla mdn我找到了这个页面,Array.from可以找到"中间数组"的概念:
更清楚的
Array.from(obj, mapFn, thisArg)是Array.from(obj).map(mapFn, thisArg),除了不创建中间数组之外,具有相同的结果.
但除了这里和那里的信息之外,还不清楚中间值是什么. …
使用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)
我的第一个问题是如何取消分配浏览按钮?
我的第二个问题是如何知道(原生)是否已经定义了浏览按钮?
我在文档中看不到任何相关信息.
谢谢.
为了使一个极端的总结,之间的差异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还需要执行额外的步骤:清理 …
在调用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) 我们知道这会创建一个类:
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的官方文档 …
I\xe2\x80\x99m 使用这个字符,双锐号\'\',unicode 是 0x1d12a。
\n如果我在字符串中使用它,我可以\xe2\x80\x99t 获得正确的字符串长度:
str = "F"\nstr.length // returns 3, even though there are 2 characters!\nRun Code Online (Sandbox Code Playgroud)\n\n如何让函数返回正确的答案,无论 I\xe2\x80\x99m 是否使用特殊的 unicode \xe2\x80\xaf?
\n如何将此响应转换为有效数组?
我想对Object.map数据执行:
var user_roles = "['store_owner', 'super_admin']";
Run Code Online (Sandbox Code Playgroud)
这不是有效的JSON,所以我无法使用 JSON.parse
javascript ×8
python ×2
algorithm ×1
arrays ×1
automation ×1
class ×1
ecmascript-6 ×1
flow-js ×1
function ×1
json ×1
let ×1
mocha.js ×1
performance ×1
python-2.7 ×1
python-3.x ×1
unicode ×1
var ×1