小编Wil*_*dow的帖子

如何使用Javascript文字表示法创建关联数组

据我所知,有没有associative arraysjavascript,只是objects.

但是,我可以像这样array使用字符串键创建bracket notation:

var myArray = [];
myArray['a'] = 200; 
myArray['b'] = 300; 
console.log(myArray); //prints [a: 200, b: 300]
Run Code Online (Sandbox Code Playgroud)

所以,我想在不使用的情况下做同样的事情 bracket notation

var myNewArray = [a: 200, b: 300]; //getting error - Unexpected token:
Run Code Online (Sandbox Code Playgroud)

这也行不通

var myNewArray = ['a': 200, 'b': 300]; //same error, why can I not create?
Run Code Online (Sandbox Code Playgroud)

javascript arrays associative-array

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

找到一百万个元素中唯一的唯一元素

我在最近的一次采访中被问到这个问题.

您将获得一个包含一百万个元素的数组.所有元素都是重复的,除了一个.我的任务是找到独特的元素.

var arr = [3, 4, 3, 2, 2, 6, 7, 2, 3........]
Run Code Online (Sandbox Code Playgroud)

我的做法是要经过在整个数组for循环,然后创建一个map索引作为number数组中和valuefrequency数组中出现的次数.然后再次遍历我们的地图并返回值为1的索引.

我说我的方法需要O(n)时间复杂.面试官告诉我要以不太O(n)复杂的方式优化它.我说我们不能,因为我们必须通过一百万个元素来完成整个阵列.

最后,他似乎并不满意,并转向下一个问题.

我理解在数组中经历数百万个元素是昂贵的,但是如果不对整个数组进行线性扫描,我们怎么能找到一个独特的元素呢?

PS:数组未排序.

java arrays

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

缩小从int到long unsigned int {}的转换在C++ 11中是不正确的

当我运行下面的代码时 - 我收到警告"缩小从int到long的无符号int转换{}在C++ 11 [#Wnarrowing]中是不正确的.我正在使用GNU 4.8编译器.

typedef struct TableEntry
{
    unsigned long value;
    const char *label;
} TableEntry;

enum FunctionType
{
    NORMAL   = 0, 
    RANGE    = 1
};


TableEntry functionTypes[] = 
{
    {NORMAL,   "NORMAL"},
    {RANGE, "RANGE"}
};
Run Code Online (Sandbox Code Playgroud)

我不明白为什么编译器将enum视为int?
这是GCC 4.8中的错误吗?有没有解决方法?任何帮助表示赞赏.

c c++ gcc-warning c++11 gcc4.8

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

对整数数组进行排序,前面是负整数,后面是正整数

我得到了这样一个数组:

$input = array(-1,1,3,-2,2, 3,4,-4);
Run Code Online (Sandbox Code Playgroud)

我需要对它进行排序,使得负整数位于前面,正整数位于后面,相对位置不应该改变.所以输出应该是:

$output = array(-1 ,-2,-4, 1,3,2,3,4);
Run Code Online (Sandbox Code Playgroud)

我试过这个usort,但我无法保留相对位置.

function cmp ($a, $b)
{
    return $a - $b;
}
usort($input, "cmp");
echo '<pre>', print_r($input), '</pre>';

Array
(
    [0] => -4
    [1] => -2
    [2] => -1
    [3] => 1
    [4] => 2
    [5] => 3
    [6] => 3
    [7] => 4
)
Run Code Online (Sandbox Code Playgroud)

php arrays sorting

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

如果某些承诺失败,如何继续使用$ q.all()

我有一系列的承诺和每个承诺电话http.get().

var items = ["URL1", "URL2", "URL3"];
var promises = [];
//on each URL in items array, I want to create a promise and call http.get
items.forEach(function(el){
    return promises.push($http.get(el)); 
});
var all = $q.all(promises);
all.then(function success(data){
    console.log(data);
}).catch(function(reason){
    console.log("reason is", reason);
});
Run Code Online (Sandbox Code Playgroud)

在我的情况下发生了什么

URL2.get没有得到解决,它立即触发catch()$q.all.由于这种失败,all.then()永远不会被调用.

我想要的是

即使其中一项承诺遭到拒绝,我也希望所有的承诺能够继续下去.

我发现了一个类似的帖子,但解决方案建议使用另一个名为Kris Kowal的Q的角度蛋糕.所以我想知道如何在不使用外部包的情况下实现它?

javascript promise angularjs q

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

计算字符串PHP中所有字母的出现

我想计算一个字符串中所有字母的出现频率。说我有

$str = "cdcdcdcdeeeef";
Run Code Online (Sandbox Code Playgroud)

我可以使用str_split和array_count_values实现此目的。

array_count_values(str_split($str));
Run Code Online (Sandbox Code Playgroud)

想知道是否还有另一种方法可以将字符串转换为数组吗?谢谢

php arrays string

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

stl map C++中的最高值?

我有一个像这样的地图,枚举为关键,UINT为值.

    #include <iostream>
    #include <string>
    #include <map>

    using namespace std;

    typedef enum tcGroup_t
    {
        CG_NONE      = 0,
        CG_BASE      = 1, 
        CG_RC        = 3,
        CG_HTD       = 4,
        CG_HID       = 5
    } tcGroup;


    int getMaxtcGroupCount() 
    {
        std::map<tcGroup, UINT> maxTcGroup;
        maxTcGroup [CG_BASE] = 2;
        maxTcGroup [CG_HID]  = 33;
        maxTcGroup [CG_HTD]  = 44;
        maxTcGroup [CG_RC]   = 87;
        maxTcGroup [CG_NONE] = 39;
    }
Run Code Online (Sandbox Code Playgroud)

基本上,我想将地图中的最高值返回给调用函数.在上面的例子中,我想返回值87.我知道地图是通过Key排序的,但在我的情况下,我想要返回地图中的最高值?

任何帮助表示赞赏.谢谢

c++ stl map

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

标签 统计

arrays ×4

c++ ×2

javascript ×2

php ×2

angularjs ×1

associative-array ×1

c ×1

c++11 ×1

gcc-warning ×1

gcc4.8 ×1

java ×1

map ×1

promise ×1

q ×1

sorting ×1

stl ×1

string ×1