小编Pav*_* S.的帖子

对象上的Javascript reduce()

有一个很好的Array方法reduce()可以从Array中获取一个值.例:

[0,1,2,3,4].reduce(function(previousValue, currentValue, index, array){
  return previousValue + currentValue;
});
Run Code Online (Sandbox Code Playgroud)

实现对象的最佳方法是什么?我想这样做:

{ 
    a: {value:1}, 
    b: {value:2}, 
    c: {value:3} 
}.reduce(function(previous, current, index, array){
  return previous.value + current.value;
});
Run Code Online (Sandbox Code Playgroud)

但是,Object似乎没有reduce()实现任何方法.

javascript arrays reduce object

158
推荐指数
6
解决办法
17万
查看次数

foreach的性能,带有lambda的array_map和带有静态函数的array_map

这三种方法之间的性能差异(如果有的话)是什么,都用于将数组转换为另一个数组?

  1. 运用 foreach
  2. 使用array_maplambda/closure函数
  3. 使用array_map'静态'功能/方法
  4. 还有其他方法吗?

为了使自己清楚,让我们看看这些例子,都做同样的事情 - 将数字数组乘以10:

$numbers = range(0, 1000);
Run Code Online (Sandbox Code Playgroud)

的foreach

$result = array();
foreach ($numbers as $number) {
    $result[] = $number * 10;
}
return $result;
Run Code Online (Sandbox Code Playgroud)

用lambda映射

return array_map(function($number) {
    return $number * 10;
}, $numbers);
Run Code Online (Sandbox Code Playgroud)

使用'static'函数映射,作为字符串引用传递

function tenTimes($number) {
    return $number * 10;
}
return array_map('tenTimes', $numbers);
Run Code Online (Sandbox Code Playgroud)

还有其他方法吗?我将很高兴听到上述案例之间的所有差异,以及为什么应该使用其他人而不是其他人的任何输入.

php performance foreach lambda array-map

131
推荐指数
4
解决办法
7万
查看次数

在JavaScript中定义本地函数:使用var还是不使用var?

在JavaScript中声明本地(内部)函数时,有两个选项:

使用var关键字声明,分配给变量:

(function() {
    var innerFunction1 = function() { ... };
    innerFunction1();
}());
Run Code Online (Sandbox Code Playgroud)

仅使用function关键字声明,而不指定给变量:

(function() {
    function innerFunction2() { ... };
    innerFunction2();
}());
Run Code Online (Sandbox Code Playgroud)

我可以看到第二个的一个优点:函数可以在调用它的代码下面声明,因此更容易将私有函数与实际执行的代码分开.

哪个更好,为什么

javascript closures declaration function

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

jQuery可以检查输入内容是否已更改?

有可能以某种方式将javascript(jQuery是最好的)事件绑定到"更改"表单输入值吗?

我知道.change()方法,但是在你(光标)离开输入字段之前它不会触发.我也考虑过使用.keyup()方法,但它也会对箭头键等作出反应.

我只需要在输入中的文本每次更改触发一个动作,即使它只有一个字母更改.

javascript jquery input onchange

49
推荐指数
4
解决办法
11万
查看次数

如何根据内容使表格单元缩小?

如何使包含2列(单元格)的表格如下所示:

  • 第一个细胞根据内容收缩
  • 另一个单元格适合表格的其余部分(比两个内容更宽)

例:

<table style="width: 500px;">
   <tr>
      <td>foo</td>
      <td>bar</td>
   </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

我需要这个表看起来像这样:

.___________________________________________________________________________.
| foo | bar            <a lot of space here>                                |
|_____|_____________________________________________________________________|
                           500 px total width
Run Code Online (Sandbox Code Playgroud)

注意:我不知道"foo"的宽度,所以我不能设置"50px","10%"或类似的东西.

html css html-table width

45
推荐指数
3
解决办法
5万
查看次数

Redis中的项目数

获取Redis中项目数量(计数)的最简单方法是什么?最好不需要转储整套和计算线...到目前为止,我发现只有BITCOUNT,我没有发现它有用......

count set redis

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

原子地从Redis数据结构中弹出多个值?

是否有Redis数据结构,它允许弹出(获取+删除)多个元素的原子操作,它包含多个元素?

有众所周知的SPOP或RPOP,但它们总是返回单个值.因此,当我需要来自set/list的前N个值时,我需要调用命令N次,这很昂贵.假设集/列表包含数百万个项目.是否有类似的东西SPOPM "setName" 1000,它会返回并从集合中删除1000个随机项目,或者RPOPM "listName" 1000从列表中返回1000个最右边的项目?

我知道有像SRANDMEMBER和LRANGE这样的命令,但它们不会从数据结构中删除项目.它们可以单独删除.但是,如果有更多客户端从同一数据结构中读取,则可以多次读取一些项目,并且可以在不读取的情况下删除一些项目!因此,原子性是我的问题所在.

此外,如果这种操作的时间复杂性更昂贵,我也没关系.我怀疑它会比发布N(比如上一个例子中的1000,N)单独请求Redis服务器更昂贵.

我也知道单独的交易支持.但是,来自Redis docs的这句话不鼓励我将它用于修改集合的并行进程(从中破坏性地读取):
当使用WATCH时,EXEC只有在未修改被监视的键​​时才会执行命令,允许进行检查和设置机制.

time-complexity atomicity redis data-structures

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

ember.js扩展和创建之间有什么区别?

ember.jsObject方法extendcreate?之间有什么区别?

TLDR:您将在Ember指南中找到答案:类和实例.

有时候我会在示例中看到一个,有时候看到另一个.特别是,Em.Application.extend({})和之间有什么区别Em.Application.create({})

如果我这样申报我的应用程序,这是什么意思?

Ember.Application.create({
    MyController : Ember.ArrayController.extend({

    }),
});
Run Code Online (Sandbox Code Playgroud)

如何访问MyController的实例?我需要以某种方式创建它吗?我需要将一些数据推入其中.

ember.js

27
推荐指数
1
解决办法
7899
查看次数

垂直居中浮动div的内容

我如何对浮动div(我不知道的高度)的内容进行真正的中心化?

有非常简单的HTML和CSS(见这个小提琴:http://jsfiddle.net/DeH6E/1/)

<div class="floating">
    This should be in the middle
</div>
?
.floating {
    height: 100px;
    float: left;
    border: 1px solid red;
    vertical-align: middle;
}   ?
Run Code Online (Sandbox Code Playgroud)

如何使句子"这应该在中间"真的出现在中间(垂直居中)?vertical-align: middle似乎不起作用.我试过了display: table-cell,也没用.解决这个问题的最佳方法是什么?我想避免插入任何其他HTML标记,只需通过CSS.

(只是说清楚:我不知道容器的实际高度,100px仅用于示例)

编辑:我希望你了解我,所以......总是当我设计网页时,我遵循HTML保存内容的规则,CSS负责视觉风格.我从来没有将它们混合在一起或只使用一个来启用另一个.在这种情况下,我也想坚持这条规则.我不想只为CSS插入HTML元素.

css css-position vertical-alignment css-float

21
推荐指数
3
解决办法
6万
查看次数

如何在Android上的WebView中提高JS可拖动菜单的性能

我们在Android上的WebView中显示了一个Web应用程序,我们确实需要处理旧版Android平板电脑上的性能问题

  • 我们正在使用iScroll-lite进行javascript拖动
  • 我们将硬件加速设置为true,将渲染优先级设置为高,WebView只允许80ms间隔内的一个MOVE触摸事件

我们还能做些什么吗?
有没有比iScroll-lite更快的替代方案?

我们不知道究竟是什么让它如此缓慢.例如,它可以在手机索尼Erricson上运行1 GHz,512 MB RAM与Android 2.3顺利运行,但在平板电脑Qualcomm 1GHz,512 RAM与Android 4.0你拖延,你实际上必须等待看到任何结果.我在Android版本和屏幕分辨率中看到的唯一区别.

javascript performance android webview iscroll

16
推荐指数
1
解决办法
1473
查看次数