问题列表 - 第37262页

ECMA-/Javascripts Array.prototype.forEach

Javascript(ECMAscript)Array.prototype.forEach从版本1.6(ECMAscript edition 3,2005)开始支持该方法.因此,相当多的浏览器已经支持该方法,并且与jQuery的$.each()方法相比,它的速度非常快.
(实际上它胜过所有实现,无论哪个Javascript库)

与jQuery相比,它的速度提高了约60-70%.在JSPerf 上使用forEach和jQuery自己尝试一下.

到目前为止我唯一使用它的缺点是,我无法想象早点打破迭代的方法.喜欢for,while并且do-while有一个break声明,jQuerys .each()支持return false打破循环.

我查看了ECMAScript第5版规范(我发现的最新版本),但他们没有提到从该循环中提前中断.

所以,问题,Douglas Crockford先生会称之为design error
我错过了什么,有可能提前打破这样的循环吗?

编辑

谢谢你到目前为止的答案.我想既然没有人想出一个"原生"解决方案,那真的没有实现(可能是一个功能?).无论如何,我真的不喜欢建议的方法,所以我愚弄了一点,终于找到了一个我喜欢的(至少,更好).好像:

var div     = document.createElement('div'),
divStyle    = div.style,
support     = jQuery.support,
arr         = ['MozTransform', 'WebkitTransform', 'OTransform'];

arr.slice(0).forEach(function(v,i,a){    
    if(divStyle[v] === ''){
       support.transform = v;
       a.length = 0;
    }
});
Run Code Online (Sandbox Code Playgroud)

这是"真正的"生产代码.我找了一个查找css3转换属性的好方法,我迷失了ecma5规范和奇怪的Javascript论坛:-)

因此,您可以将数组对象本身作为第三个参数传递给.forEach回调.我从原始数组创建一个副本,一旦找到我正在寻找的东西,就调用slice(0)并将其.length属性设置为0.效果很好.

如果有人提出了更好的解决方案,我当然会编辑它.

javascript jquery ecma262

4
推荐指数
1
解决办法
1241
查看次数

Android Web浏览器缩放比精灵更有效地为图像工作

我正在开发一个移动Web应用程序,我有一个主屏幕,上面有许多图标,所以我尝试使用精灵一次性服务所有图像.

然而,我注意到iphone4在我的精灵中很好地缩放了图像(它们看起来有点抖动),但在我的HTC Evo上,精灵渲染的图像看起来非常块状.我切换到标准图像(背景:(/ image_url /)没有背景位置),图像看起来好多了 - 看到这个屏幕截图,左图像是使用单个图像提供的,而右边的图像是从精灵提供的(但是在精灵中是相同的图像).

有没有办法让Android浏览器更好地解释精灵?

android css-sprites mobile-website android-browser

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

排除JOIN字段上的匹配项为NULL

如果您执行的连接看起来像这样

SELECT T1.KeyField1, T1.KeyField2, T2.Field3
FROM T1 JOIN T2 ON T1.KeyField1 = T2.KeyField1 AND T1.KeyField2 = T2.KeyField2
Run Code Online (Sandbox Code Playgroud)

有没有办法不允许NULLS匹配类似于此查询将返回的结果

SELECT T1.KeyField1, T1.KeyField2, T2.Field3
FROM T1 JOIN T2 ON T1.KeyField1 = T2.KeyField1 AND T1.KeyField2 = T2.KeyField2
               AND T1.KeyField2 IS NOT NULL AND T2.KeyField2 IS NOT NULL
Run Code Online (Sandbox Code Playgroud)

编辑

我实际上问了这个问题......让我再试一次.

我们正在将新数据与旧数据进行比较,并查找行完全相同的记录.

所以两个表都定义了:

CREATE TABLE [Table](
    [Identifier] [int] IDENTITY(1,1) NOT NULL,
    [Key1] [varchar](50) NOT NULL,
    [Data1] [varchar](50) NULL,
    [Data2] [varchar](50) NULL
Run Code Online (Sandbox Code Playgroud)

如果我查询:

DELETE
FROM T1 JOIN T2 ON T1.Key1 = T2.Key1 
               AND T1.Data1 = T2.Data2 …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

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

C#; 在不单独声明方法的情况下创建新代理?

我能够编译包含这个的代码:

OperationDelegate myOpDelegate;
static OperatorDefinition[] definitions ={
                new OperatorDefinition("+",2,3,true, new OperationDelegate(OperationAdd)),
            };
delegate double OperationDelegate(double[] args);
static double OperationAdd(double[] args)
            {
                return args[0] + args[1];
            }
Run Code Online (Sandbox Code Playgroud)

但我认为如果我可以做更像这样的事情,我的代码看起来会更清晰:

OperationDelegate myOpDelegate;
static OperatorDefinition[] definitions ={new OperatorDefinition("+",2,3,true, new OperationDelegate({return args[0]+args[1]}))};
delegate double OperationDelegate(double[] args);
Run Code Online (Sandbox Code Playgroud)

因为我想在一个地方定义每个OperatorDefinition的所有内容,而不是单独定义这些函数.有没有办法在C#中做到这一点?

(对我的代码的任何其他批评也是受欢迎的)

c# syntax delegates

6
推荐指数
2
解决办法
2445
查看次数

流利的NHibernate现在准备好生产代码吗?

这个问题的主题不言而喻.我想知道Fluent NHibernate是否已准备好生产代码.我特别想知道我遇到的一些看似简单的问题,我还没有找到完全令人满意的解决方案(并且社区没有解决方案?)

为什么Fluent NHibernate无视我的惯例?

为什么Fluent NHibernate会忽略我对组件的唯一约束?

是的,我知道这个的老问题是超过一岁; 答案似乎有点 - 有点 - 也许.

流利的NHibernate现在可以投入生产吗?

fluent-nhibernate

-1
推荐指数
1
解决办法
233
查看次数

如何减轻OpenCL/CUDA中的主机+设备内存传输瓶颈

如果我的算法由主机到设备和设备的瓶颈来承载内存传输,那么唯一的解决方案是不同的还是修改过的算法?

memory cuda nvidia opencl

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

如何获得装饰函数的参数规范?

我需要确定装饰器中函数的argspec(inspect.getargspec):

def decor(func):
    @wraps(func)
    def _decor(*args, **kwargs):
        return func(*args, **kwargs)
    return _decor

@decor
def my_func(key=1, value=False):
    pass
Run Code Online (Sandbox Code Playgroud)

我需要能够检查包装的"my_func"并返回键/值参数及其默认值.看来inspect.getargspec没有得到正确的功能.

(对于一些运行时检查/验证以及后来的文档生成,我需要这个)

python

21
推荐指数
2
解决办法
3875
查看次数

不同字符串指针/数组类型的strsep分段错误

平台:Linux,OSX
编译器:GCC

我有一个简单的程序,目前让我感到困惑 - 我知道我正在搞乱几种不同类型的数组/指针来产生这个问题 - 它是故意的 - 我试图理解它.

列出的代码将按预期编译和运行,但会data4在调用中strsep(&data4, "e");更改data1data3导致分段错误.我想了解原因.

#include <stdio.h>
#include <string.h>

int main(int c, char** v) {
    char* data1 = "hello\0";
    char* data2 = strdup(data1);
    size_t sz = strlen(data1);
    char data3[sz+1];
    char* data4;

    memset(data3, 0, sz+1);
    data4 = strncpy(data3, data1, sz);
    data4[sz] = '\0';

    char* found = strsep(&data4, "e");

    if (found == NULL) {
        printf("nothing found\n");
    } else {
        printf("found e\n");
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c string memory-management libc

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

Python的多个构造函数

我有一个A类,可以通过两种不同的方式生成.

  • a = A(path_to_xml_file)
  • a = A(listA,listB)

第一种方法将文件路径作为输入从XML文件解析以获取listA和listB.第二种方法有两个列表.

我可以想到两种方法来实现多个构造函数.你怎么看?通常Python人员使用什么方法来处理这种情况?

检查类型

class A():
    def __init__(self, arg1, arg2 = None):
        if isinstance(arg1, str): 
            ...
        elif isinstance(arg1, list):
            ...

a = A("abc")
b = A([1,2,3],[4,5,6])
Run Code Online (Sandbox Code Playgroud)

做不同的建设者

class A2():
    def __init__(self):
        pass
    def genFromPath(self, path):
        ...
    def genFromList(self, list1, list2):
        ...
a = A2()
a.genFromPath("abc")
b = A2()
b.genFromList([1,2,3],[4,5,6])
Run Code Online (Sandbox Code Playgroud)

python constructor

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

Java/Swing:JScrollPane中的JTextArea,如何防止自动滚动?

这是一段可运行的代码,显示了我的"问题".

我有一个被JTextArea包裹的JScrollPane.当我更改文本时JTextArea,JScrollPane滚动会自动滚动到文本的末尾,我不希望这样.

这是我的要求:

  • 应用程序不应自动垂直滚动,但......
  • 用户应该能够垂直滚动
  • 用户应该能够水平滚动
  • 应用程序永远不应水平滚动
  • JTextArea不能编辑

(即使文本比水平方式更多,应用程序和用户都不应该能够水平滚动.垂直方向,只有用户才能滚动.)

我不知道如何"修复"这个问题:应该使用JTextAreaJScrollPane方法修复吗?

请注意,AFAICT根本重复:JTextPane阻止在父JScrollPane中滚动

这是一个有趣的例子,它每隔200毫秒放入新文本JTextArea,你可以看到JScrollPane总是自动滚动到文本的末尾.

import javax.swing.*;
import java.awt.*;
import java.util.Random;

public final class TextInScrollPane extends JFrame {

    private static final Random r = new Random( 42 );

    public static void main( final String[] args ) {
        final JFrame f = new JFrame();
        f.setDefaultCloseOperation( EXIT_ON_CLOSE ); …
Run Code Online (Sandbox Code Playgroud)

java swing jscrollpane jtextarea

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