小编0x4*_*2D2的帖子

为什么在使用return语句时,forEach返回undefined

Object.prototype.e = function() {
    [].forEach.call(this, function(e) {
        return e;
    });
}; 
var w = [1,2];

w.e(); // undefined
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用警报,这是有效的

// ...
[].forEach.call(this, function(e) {
    alert(e);
});
// ...

w.e(); // 1, 2
Run Code Online (Sandbox Code Playgroud)

javascript

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

JavaScript超时触发3次而不是一次(clearTimeout不起作用?)

当用户在键入时暂停(而不是在每次按键后)时,我想触发一个ajax动作.所以我做了这样的事情:

当用户在空闲3秒后停止输入时,将执行完成功能...(它是 - 但为什么3次长短语 - 我希望它只运行一次,因为我在每次keydown后清除超时).问题是什么 ?

var timer; 
var interval = 3000; 
$('#inp').keyup(function() {
  timer = setTimeout(done, interval); 
}); 

$('#inp').keydown(function() {
  clearTimeout(timer)  
}); 

function done() {
  console.log('ajax'); 
}
Run Code Online (Sandbox Code Playgroud)

关于jsfiddle的工作示例:http: //jsfiddle.net/vtwVH/

javascript jquery

10
推荐指数
2
解决办法
1651
查看次数

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

如何创建CSS/JavaScript圈子网格

我需要做这样的事情: 在此输入图像描述

这可能看起来很简单,但是有一些要求: - 包含div的宽度应该取决于文本长度(在CSS中是否可以?) - 所有圆圈应该随机定位 - 这是最困难的部分我.

当我border-radius用于创建圆圈(设置高度,宽度和border-radius50%)时,我尝试在JavaScript中创建某种网格,我遍历每个元素并获得其尺寸.然后我得到前一个元素的位置(如果有的话)并将它们添加到当前元素维度.此外,添加一些边距将有助于避免冲突.这是正确的方法吗?

我只是在寻找一个如何解决我的两个问题的建议.

javascript css css3

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

为什么"std :: vector <bool>"的大小是16字节?

我正在使用memcpy将std:vectors <>的内容复制到primitve Arrays.对于像int,float,double等数据类型,它运行良好.当我开始复制一个boolvector时,我遇到了一个问题,即我得到了奇怪的值.

首先,我开始为浮动矢量进行测试输出:

std::vector<float> test1 (3,0);

cout << "Sizeof test1[0] : " << sizeof(test1[0]) << endl
     << "Memoryaddress 0: " << &test1[0] << endl
     << "Memoryaddress 1: " << &test1[1] << endl
     << "Memoryaddress 2: " << &test1[2] << endl;
Run Code Online (Sandbox Code Playgroud)

输出是:

Sizeof test1[0]: 4
Memoryaddress 0: 02793820
Memoryaddress 1: 02793824
Memoryaddress 2: 02793828
Run Code Online (Sandbox Code Playgroud)

这就是我的期望.浮点大小为4字节,到下一个浮点值的距离为4字节.当我为bool执行此操作时,输出如下所示:

std::vector<bool> test (3,0);

cout << "Sizeof test[0]: " << sizeof(test[0]) << endl
     << "Memoryaddress 0: " << &test[0] << endl
     << "Memoryaddress 1: " << …
Run Code Online (Sandbox Code Playgroud)

c++ boolean vector

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

appendChild,insertAdjacentHTML和innerHTML有什么区别

我想知道的区别是什么之间appendChild,insertAdjacentHTMLinnerHTML.

我认为他们的功能是相似的,但我想在使用方面清楚地理解,而不是执行速度.

  1. 例如,我可以使用innerHTML在HTML中的另一个标记中插入新标记或文本,但它会替换该标记中的当前内容而不是追加.
  2. 如果我想这样做的(不是替代)我需要使用insertAdjacentHTML,我可以管理,我想插入一个新元素(beforebegin,afterbegin,beforeend,afterend)

  3. 最后,如果我想创建(不在当前标签中插入)新标签并将其插入HTML我需要使用appendChild.


我理解正确吗?或者这三者有什么区别?

javascript

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

使用点访问匿名枚举值

此代码与GCC和Clang编译(并且似乎有效):

#include <iostream>

struct Foo {
    enum { number = 42 };
};

int main()
{
    Foo bar;
    std::cout << bar.number << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

在这里看到它.

令我惊讶的是,编译器接受了bar.number; 我能找到的所有教科书都可以Foo::number用来访问枚举值.

这段代码有效吗?请注意,GCC给出了一个奇怪的警告("变量'栏'设置但未使用'),而Clang没有抱怨它.

c++

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

如何获得const限定的declval?

请考虑以下代码:

#include <iostream>
#include <type_traits>
#include <typeinfo>

struct Base
{
    int f() const;
    double f();
};

struct Derived
: public Base
{
    template <typename T = decltype(std::declval<Derived>().f())> // Modify this
    T g() const;
};

int main()
{
    const Derived x;
    std::cout<<typeid(decltype(x.g())).name()<<std::endl; // Prints "d", not "i"
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如何修改decltype(std::declval<Derived>().f())使它返回int而不是double

我试过decltype(std::declval<const Derived>().f()但它没有编译.

c++ const decltype c++11

9
推荐指数
2
解决办法
620
查看次数

如果类包含标准容器,是否可以标记类move- operation noexcept?

使用标准容器成员对类实现移动操作的惯用方法不能noexcept,因此不能通过类似的操作移动vector.push_back().还是我弄错了?

为了加快速度

vector<Elem> data;
// ...
data.push_back( elem );
Run Code Online (Sandbox Code Playgroud)

我们鼓励我们进行移动操作noexcept- 因此在向量调整大小期间,库可以安全地将元素移动到重新分配的存储.

class Elem {
    // ...
    Elem(Elem&&) noexcept;            // noexcept important for move
    Elem& operator=(Elem&&) noexcept; // noexcept important for move
};
Run Code Online (Sandbox Code Playgroud)

到目前为止一切顺利,现在我的elems可以更快地被推回.

但是:如果我添加一个容器作为成员,我的班级仍可以标记为noexcept-move吗?所有标准容器都没有移动noexcept!

class Stuff {
    vector<int> bulk;
    // ...
    Stuff(Stuff&& o)  // !!! no noexcept because of vector-move  
      : bulk(move(o.bulk))
      {}
    Stuff& operator=(Stuff&&) // !!! no noexcept...
      { /* appropriate implementation */ }
};
Run Code Online (Sandbox Code Playgroud)

这也意味着,我们也可以不依赖编译器生成的移动操作,对吧?以下完整的类也没有noexcept …

c++ containers move-semantics noexcept c++11

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

错误:左值作为一元和操作数需要

编译时(使用Linux Server版本6.1)

strftime(AppTime, sizeof(AppTime),"%Y/%m/%d %T", localtime(&((long)u32_Time)));
Run Code Online (Sandbox Code Playgroud)

得到错误"错误:左值需要作为一元'和'操作数'

但是使用Red Hat Enterprise Linux AS第3版成功编译了相同的代码.

为什么这样?怎么纠正这个?

c++ linux

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