小编tle*_*man的帖子

在Javascript中随机选择对象的可枚举属性

在Javascript中给出类似字典的对象,例如{a:1, b:-2, c:42},是否有一种随机选择属性的简单方法?

在上面的例子中,我想有,将返回的函数a,bc随机.

我提出的解决方案如下:

    var proplist = []
    forEach(property in foo) {
        if(propertyIsEnumerable(foo[property]) {
            proplist.push(property);
        }
    }
    var n = proplist.length;
    // randomly choose property (randInt(n) returns a random integer in [0,n))
    proplist[randInt(n)];
Run Code Online (Sandbox Code Playgroud)

有没有比较惯用的方法呢?

javascript

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

MySQL 转储和导入不保留编码?

我正在尝试将远程计算机上的 MySQL 数据库中的表复制到本地计算机上的另一个 MySQL 数据库中。我注意到在将转储导入到我的本地机器后,有像 ’ 这样的字符而不是单引号。

我认为这是一个编码问题,所以我进入了两个数据库并运行了show create table posts,在两个数据库接近尾声时,我看到了CHARSET=utf8. 另外,我file -i在将转储文件scp导入本地机器之前和之后都运行了它,它们都是 utf8。

但是,当我导入这个文件时,我之前得到了这个:

  attendees—policy makers, 
Run Code Online (Sandbox Code Playgroud)

之后:

  attendees—policy makers,
Run Code Online (Sandbox Code Playgroud)

我不确定为什么会这样,一切都使用 utf8,我错过了什么?

编辑:我在mysql Ver 14.12 Distrib 5.0.75, for debian-linux-gnu (x86_64)远程和mysql Ver 14.14 Distrib 5.5.25a, for osx10.7 (i386)本地使用。

mysql encoding mysqldump utf-8 character-encoding

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

Scheme扩展过程调用

给定一个函数,如fibonacci重复的树递归实现,我如何在表达式的评估中显示每个步骤(fib 5)

(define (fib n)
  (cond ((= n 0) 0)
        ((= n 1) 1)
        (else (+ (fib (- n 1)
                 (fib (- n 2))))))
Run Code Online (Sandbox Code Playgroud)

例如,我想输出:

(fib 5)

(+ (fib 4) (fib 3))

(+ (+ (fib 3) (fib 2)) (+ (fib 2) (fib 1)))

(+ (+ (+ (+ (fib 1) 0) (fib 1) (+ (fib 1) 0)) (+ (+ (fib 1) 0) (fib 1)))

(+ (+ (+ (+ 1 0) 1 (+ 1 0)) (+ (+ 1 0) 1)) …
Run Code Online (Sandbox Code Playgroud)

scheme

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

在C宏中模拟范围

我有以下宏来打印出一个整数数组的内容用于调试目的:

#define PRINT_ARRAY(ary, num)        \
    int ai = 0;                      \
    printf("{");                     \
    for(ai=0; ai < num; ++ai) {      \
        printf("%d", ary[ai]);       \
        if(ai < num-1) printf(", "); \
    }                                \
    printf("}\n");
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,当我不止一次使用它时,一些编译器抱怨我正在重新定义ai.

有没有办法使宏标识符的每次调用都不同?我可以提出一个名称冲突变化非常小的命名方案,但我想让它自动化.

我知道我可以使用一个函数,但我仍然很好奇,因为我想知道是否有办法用宏来做这个.

c macros scope

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

sha256sum可执行文件和PyCrypto库之间存在差异

我试图获取ASCII编码字符串的SHA256总和.首先,我尝试了sha256sum可执行文件:

$ echo foo | sha256sum
b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c
Run Code Online (Sandbox Code Playgroud)

但是当我使用这个PyCrypto库时,我会得到一些不同的东西:

from Crypto.Hash import SHA256
h = SHA256.new();
h.update('foo');
print(h.hexdigest());
Run Code Online (Sandbox Code Playgroud)

我得到以下内容:

c5aac592460a9ac7845e341090f6f9c81f201b63e5338ee8948a6fe6830c55dc
Run Code Online (Sandbox Code Playgroud)

我怀疑我错过了关于第一个的东西,也就是说,echo foo可能有分隔符或其他东西,但我无法弄清楚是什么.

这两种情况有什么不同?

python command-line sha256

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

从行到列的 SQL 透视只留下 NULL 值

我有一个名为 的表变量,@t它是我在此处定义的 specsAndModel 类型的实例:

CREATE TYPE specsAndModel AS TABLE
(
    specName VARCHAR(50)
    ,specVal VARCHAR(50)
)
Run Code Online (Sandbox Code Playgroud)

做 aselect specName,specVal from @t给出以下形式的数据:

specName              | specVal
--------------------------------
[modelNumber]         | F00-B4R
[Internal Switch(es)] | 2.00000
[Number of Ports]     | 1.00000
[Color Insulator]     | Yellow
Run Code Online (Sandbox Code Playgroud)

我插入了第一行,这样当我转置表格时,就会有一个modelNumber字段。我打算将转置表连接到该字段上的另一个表。

为了考虑不同模型的不同记录数,我使用字符串连接构造了pivot语句:

DECLARE @cols NVARCHAR(MAX);
DECLARE @query NVARCHAR(MAX);
SELECT @cols = COALESCE(@cols + ',' + specName, specName) FROM @t;

SET @query = N'SELECT ' + @cols 
+ N' FROM @var src' 
+ N' PIVOT …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008

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