小编Boy*_*ang的帖子

Array.map 1个元素到多个元素

我有[3, 16, 120].当我这样做时[3, 16, 120].map(mapper),我想实现,例如[4,5, 17,18, 121,122]每个元素映射到n + 1和n + 2.这当然是一个例子 - 我想要的是简单地从mapper函数中推送多个值

我是否必须使用Array.each并推送到数组,或者是否可以使用Array.map(或其他内置的api)来实现

javascript map-function

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

初始化char**

我是C++的新手.我正在尝试调用一个接收char**的函数:

bool func(char** a) {
    //blablabla
}
Run Code Online (Sandbox Code Playgroud)

所以它需要一个c字符串数组.我需要创建一个char**,但没有任何效果.

char** a = char[255][255]; // error: type name is not allowed

char** a = new char[255][255]; // error: a value of type "char (*)[255]" cannot be used to initialize an entity of type "char **"

char a[][] = {"banana", "apple"};
char** b = &a; // error: a value of type "<error-type> (*)[2]" cannot be used to initialize an entity of type "char **"
Run Code Online (Sandbox Code Playgroud)

最后我需要做:

char* a[] = {"banana", "apple"};
Run Code Online (Sandbox Code Playgroud)

为什么前几个不起作用,为什么最后一个有效?

提前致谢.

c++ string

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

模块模式 - 如何将一个模块的代码拆分成不同的js文件?

对于模块模式,我做的事情如下:

(function(namespace) {
    // tons of code
    // blabla
})(window.myGlobalNamespace);
Run Code Online (Sandbox Code Playgroud)

如何拆分代码?我可以想到几种方法,比如使用命名空间的层次结构,或者扩展外部的对象window.myGlobalNamespace.additionalFunc = function () {//blabla}.还有什么其他方法?优缺点都有什么?哪一个被认为是更好的做法?

这两个答案都提出了RequireJS.能否解释一下RequireJS如何解决这些问题:

first.js:

(function(context) {
    var parentPrivate = 'parentPrivate';
})(window.myGlobalNamespace);
Run Code Online (Sandbox Code Playgroud)

second.js:

(function(context) {
    this.childFunction = console.log('trying to access parent private field: ' + parentPriavte);
}(window.myGlobalNamespace.subNamspace);
Run Code Online (Sandbox Code Playgroud)

main.js:

window.myGlobalNamespace.subNamspace.childFunction(); // doesn't work
Run Code Online (Sandbox Code Playgroud)

人们可以做到

window.myGlobalNamespace.subNamspace.childFunction = function() {alert("a new function");}
Run Code Online (Sandbox Code Playgroud)

改变我的代码的行为!

这里有两个问题:

  1. 我们不能拥有儿童可以访问的字段,但不能访问外部公众(即受保护的).有没有办法实现这一目标?

  2. 如果没有,意味着如果我们想要访问,我们需要将其公之于众.然后用户将能够修改它!

更重要的是,所有公共功能都可以更改和替换.我不希望这种情况发生.

我不知道RequireJS如何解决这些问题.有人可以解释一下吗?

javascript module-pattern requirejs revealing-module-pattern

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

Array.map想要将值映射到空

我有阵列: [1,2,3,4,5,6,7]

我想实现: [[1,2], [3,4], [5,6], [7]]

我在想Array.map,但它似乎无法映射到任何元素?

我有(使用Underscorejs):

arr.map(function(el, idx, arr) {
  if (idx%2 != 0) return null;
  if (idx == arr.length-1) return [el];
  return [el, arr[idx+1]]
}).compact();
Run Code Online (Sandbox Code Playgroud)

这仍然有点难看.如何实现转换(没有显式循环)?

javascript functional-programming map-function

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

JavaScript变量作用域和事件处理程序

请参阅jsfiddle:http: //jsfiddle.net/LsNCa/2/

function MyFunc() {

    for (var i = 0; i < 2; i++) { // i= 0, 1
        var myDiv = $('<div>');

        myDiv.click(function(e) {
            alert(i);    // both the two divs alert "2", not 0 and 1 as I expected
        });
        $('body').append(myDiv);
    }
}

var myFunc = new MyFunc();
Run Code Online (Sandbox Code Playgroud)

当我点击它时,我希望div分别提醒"0"和"1".但他们都警告"2".

当我单击div并触发事件时,处理程序如何以及在何处找到变量i的值?

我知道添加一个闭包可以实现我的目标.但为什么?

javascript scope event-handling javascript-events

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

无法结账到其他分支,因为被忽略的文件有本地更改?

我明白了:

$ git checkout mybranch
error: Your local changes to the following files would be overwritten by checkout:
        .idea/workspace.xml
Please, commit your changes or stash them before you can switch branches.
Aborting
Run Code Online (Sandbox Code Playgroud)

.idea/已经在我的.gitignore.如果我这样做git status,也没有出现任何变化.

请指教.

更新:

感谢您的建议.我希望我可以去mybranch检查,但我不能,因为它不允许我切换!如果忽略它是正确的行为.idea/(它们是来自IDE的项目配置文件),我现在该怎么办?我的目标是去mybranch和它合并master.您可以将其mybranch视为生产分支,并将其视为开发分支.现在我想更新prod,因为master足够稳定.

git

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

eslint-每个文件parserOptions.sourceType吗?

我的项目对大多数文件使用Webpack和es6模块。这些文件在浏览器中运行,并由Webpack捆绑。

在节点中运行的文件很少。他们没有被Webpack所感动,我看不到任何将它们包含在webpack中的好处。他们不支持,import因为尚未在节点(或V8)中实现。

现在进入.eslintrc,如果设置parserOptions.sourceTypescript,它将在浏览器文件中出现错误(“ import并且export仅在模块中允许!”)。如果parserOptions.sourceType设置为module,它将在节点文件中出错。

那么如何做每个文件parserOptions/* eslint-env xxx */在这种情况下不起作用

编辑

我可能可以使用特定于目录的.eslintrc,但这意味着为了更改一个选项而复制所有其他配置。还有更好的选择吗?

ecmascript-6 eslint es6-module-loader es6-modules

5
推荐指数
2
解决办法
1317
查看次数

ForkJoinPool.invoke()和ForkJoinTask.invoke()或compute()

我正在阅读Java ForkJoin框架.通过不直接调用(例如)invoke()的实现,但实例化和调用有什么额外的好处?当我们称这两种方法全部被调用时到底发生了什么?ForkJoinTaskRecursiveTaskForkJoinPoolpool.invoke(task)invoke

从源代码来看,似乎如果recursiveTask.invoke被调用,它将以托管线程池的方式调用它exec并最终调用它compute.因此,为什么我们有这个成语更令人困惑pool.invoke(task).

我写了一些简单的代码来测试性能差异,但我没有看到任何.也许测试代码错了?见下文:

public class MyForkJoinTask extends RecursiveAction {

    private static int totalWorkInMillis = 20000;
    protected static int sThreshold = 1000;

    private int workInMillis;


    public MyForkJoinTask(int work) {
        this.workInMillis = work;
    }

    // Average pixels from source, write results into destination.
    protected void computeDirectly() {
        try {

            ForkJoinTask<Object> objectForkJoinTask = new ForkJoinTask<>();
            Thread.sleep(workInMillis);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    @Override
    protected void …
Run Code Online (Sandbox Code Playgroud)

java concurrency java.util.concurrent fork-join forkjoinpool

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

如何为socket.on()传递更多参数

对于socket.on("someChannel",handler),我希望将我的处理函数提取到另一个文件中.因此,它们需要在套接字obj中传递,还有一些额外的信息.

喜欢:

socket.on("myEvt", myEvtHandler);

myEvtHandler(socket, additionalInfo, data) {//some stuff here}
Run Code Online (Sandbox Code Playgroud)

但我不能.我能想到的最好的就是关闭:

(function(socket, addtionalInfo) {
    socket.on("myEvt", function(data) {
        myEvtHandler(socket, addtionalInfo, data);
    });
})(socket, addtionalInfo);
Run Code Online (Sandbox Code Playgroud)

它是否正确?还有更好的方法吗?

javascript sockets websocket socket.io

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

Java的范围是什么?

我知道Java中的int范围应该是-2 ^ 31到2 ^ 31-1.但是当我用20运行这段代码片段时:

public class Factorial {
    public int factorial(int n) {
        int fac=1;
        for (int i=1; i<=n; i++) {
            fac *= i;
            System.out.println("Factorial of " + i + " is: " + fac);
        }

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

输出:

Factorial of 1 is: 1
Factorial of 2 is: 2
Factorial of 3 is: 6
Factorial of 4 is: 24
Factorial of 5 is: 120
Factorial of 6 is: 720
Factorial of 7 is: 5040
Factorial of 8 …
Run Code Online (Sandbox Code Playgroud)

java int range

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