ES6中的箭头函数没有arguments属性,因此arguments.callee无法工作,即使只使用匿名函数也无法在严格模式下工作.
箭头函数无法命名,因此无法使用命名的函数表达式技巧.
那么......如何编写递归箭头函数?这是一个箭头函数,根据某些条件递归调用自身等等当然?
所以,我开始尝试使用递归函数找到第100个Fibonacci数,并使用以下代码记忆该函数.
Function.prototype.memoize = function () {
var originalFunction = this,
slice = Array.prototype.slice;
cache = {};
return function () {
var key = slice.call(arguments);
if (key in cache) {
return cache[key];
} else {
return cache[key] = originalFunction.apply(this, key);
}
};
};
var fibonacci = function (n) {
return n === 0 || n === 1 ? n : fibonacci(n - 1) + fibonacci(n - 2);
}.memoize();
console.log(fibonacci(100));
Run Code Online (Sandbox Code Playgroud)
现在,正如您在这个小提琴中看到的那样,JavaScript会记录354224848179262000000作为结果.根据WolframAlpha,第129个斐波纳契数实际上是354224848179261915075,这是正确的.
现在,我的问题是这个. …
现在,在下面的代码段中,您会注意到有一个文件路径列表.每个部分(前面和后面的空行)表示一组重复的文件.我想选择除了其中一个以外的所有内容,以便我可以反转选择并使用列表进行批量删除操作.我不知道如何构造一个正则表达式来选择相同的.
正则表达式必须选择除每个部分中的一行之外的所有行.我怎么写这样的表达?
"H:\S\recup_dir.17\f171236272.mp3"
"H:\S\recup_dir.8\f37197984.mp3"
"H:\S\recup_dir.16\f168470040.gz"
"H:\S\recup_dir.17\f170038264.gz"
"H:\S\recup_dir.18\f218780056.mp3"
"H:\S\recup_dir.9\f46500864.mp3"
"H:\S\recup_dir.1\f0712280.mp3"
"H:\S\recup_dir.20\f330856896.mp3"
"H:\S\recup_dir.20\f304869798.mp3"
"H:\S\recup_dir.9\f50157574.mp3"
"H:\S\recup_dir.19\f246711560.mp3"
"H:\S\recup_dir.9\f49831408.mp3"
"H:\S\recup_dir.14\f108337512.mp3"
"H:\S\recup_dir.2\f8089064.mp3"
"H:\S\recup_dir.16\f152853840.mp3"
"H:\S\recup_dir.20\f315839720.mp3"
"H:\S\recup_dir.8\f38617728.mp3"
"H:\S\recup_dir.22\f414604664.mp3"
"H:\S\recup_dir.8\f38191280.mp3"
"H:\S\recup_dir.10\f52349328.mp3"
"H:\S\recup_dir.22\f415832696.mp3"
"H:\S\recup_dir.17\f171137807.mp3"
"H:\S\recup_dir.20\f303943983.mp3"
"H:\S\recup_dir.8\f37378127.mp3"
"H:\S\recup_dir.15\f123439872.mp3"
"H:\S\recup_dir.2\f7974272.mp3"
"H:\S\recup_dir.2\f6994232.mp3"
"H:\S\recup_dir.20\f281329576.mp3"
Run Code Online (Sandbox Code Playgroud) 在下面的代码中,orange构造函数记录为其父的构造函数(Plant()),而不是它的构造函数Fruit().为什么会这样?
(对不起有关随机对象.这是半夜,我只是在学习一些JavaScript.在现实世界中没有想太多关于它们的意义,只需将它们作为样本输入就能更好地理解原型.)
function Plant(name, colour) {
this.name = name;
this.colour = colour;
}
Plant.prototype.print = function () {
return "I'm a " + this.name.toLowerCase() + " and I'm " + this.colour.toLowerCase() + ".";
}
var mango = new Plant("Mango", "Orange");
console.log(mango.constructor);
function Fruit(type, isOrganic) {
this.type = type;
this.isOrganic = isOrganic;
}
Fruit.prototype = new Plant("Orange", "Orange");
var orange = new Fruit("staples", true);
console.log(orange.constructor);
Run Code Online (Sandbox Code Playgroud)
我得到了Plant(name, colour)两个console.log()调用,而我认为我应该为第二个调用Fruit(type,isOrganic).我在做什么/理解不正确?
更新:与上述内容一致,如果我执行以下操作...
Fruit.prototype = { …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用http://wipetouch.codeplex.com/在Meteor应用程序上实现滑动以在Iron Router中的模板之间切换.
它在iOS和Android上运行得非常漂亮,但在Windows Phone上,操作系统的本机滑动手势(在浏览器中向右滑动,在历史记录中移动一页)会干扰用户的滑动操作.
有什么方法可以禁用它吗?
还有哪些其他平台具有类似的功能,可以防止用户有效地在Web应用程序中滑动?
作为示例,此应用程序还使用相同的库来实现滑动手势.
注意:在body标签上使用touch-action:none不起作用.
我正在编写一个模块,通过串口从光谱仪接收一些数据,需要对其进行解码.根据手册,光谱数据在重复的无符号MSB和LSB 8位字中被编码为512字节.我将如何在C/C++中解码?
23- 534在重复无符号MSB和LSB 8位字[MSB]*256 + [LSB]中编码为512字节.
这是手册中的一个片段.
好的,我想在这个问题的另一部分添加.根据下面的评论,这是一个big-endian.现在,我对此感到困惑的是,如果它确实是big-endian,那么转换为little-endian会不会像反转所有字节的顺序一样简单?如果是这种情况,那么输出到那将基本上是...... LSB5,MSB5,LSB4,MSB4,LSB3,MSB3,LSB2,MSB2,LSB1,MSB1等等,然后可以转换为16比特话.我在这里错了什么?
此外,如果这确实是big-endian,那么处理转换的方法是否存在任何原生(甚至是特定于平台的,如果必要但更快)的方法?
好吧,所以在努力调试之后,我终于放弃了.我是C++和数据结构的初学者,我正在尝试用C++实现Heap Sort.下面的代码给出了正整数的正确输出,但是当我尝试输入一些负整数时似乎失败了.
请在以下代码中指出任何错误/差异.此外,我们将很高兴收到有关该主题的任何其他建议/批评.
//Heap Sort
#include <iostream.h>
#include <conio.h>
int a[50],n,hs;
void swap(int &x,int &y)
{
int temp=x;
x=y;
y=temp;
}
void heapify(int x)
{
int left=(2*x);
int right=(2*x)+1;
int large;
if((left<=hs)&&(a[left]>a[x]))
{
large=left;
}
else
{
large=x;
}
if((right<=hs)&&(a[right]>a[large]))
{
large=right;
}
if(x!=large)
{
swap(a[x],a[large]);
heapify(large);
}
}
void BuildMaxHeap()
{
for(int i=n/2;i>0;i--)
{
heapify(i);
}
}
void HeapSort()
{
BuildMaxHeap();
hs=n;
for(int i=hs;i>1;i--)
{
swap(a[1],a[i]);
hs--;
heapify(1);
}
}
void main()
{
int i;
clrscr();
cout<<"Enter length:\t";
cin>>n; …Run Code Online (Sandbox Code Playgroud) 我知道这已被问过一千次,我为再次提问而道歉,但经过几分钟的搜索,我无法弄清楚这一点.
我试图将一个锚元素div水平和垂直居中在一个元素中.这个问题的基础如下.
<div></div>
<div></div>
<div>
<a href="">Hello</a>
</div>
<div></div>
<div></div>
div {
width: 100px;
height: 100px;
background-color: teal;
box-sizing: border-box;
margin: 10px;
float: left;
text-align: center;
display: table-cell;
vertical-align: middle;
}
a {
color: white;
text-decoration: none;
font-style: 14px;
}
Run Code Online (Sandbox Code Playgroud)
现在,我知道我可以使用text-align: center;在包含div水平居中锚元素,我也可以用display: table-cell; vertical-align: middle;在div垂直对齐,但它似乎并没有一起工作,尤其是当div设置为左浮动.
我怎样才能实现这种相当简单的布局?另外,请详细说明我为什么尝试不起作用,因为我想学习而不是仅仅解决这个问题.
我宁愿不使用,line-height因为它打破了多行文字.
javascript ×4
c++ ×2
c ×1
css ×1
ecmascript-6 ×1
embedded ×1
html ×1
jquery ×1
meteor ×1
recursion ×1
regex ×1
sorting ×1
sublimetext2 ×1
touch ×1