相关疑难解决方法(0)

async.auto中的任务结果

我对async.auto中从一个任务到另一个任务的结果逻辑感到困惑.例如,在下面的代码逻辑中,我向模型中添加了一些数据task1,这些数据最初是从模型的输出initialtaskfinalTask添加的数据task1中反映出来的results.initialTask1.同样添加的数据task2反映在results.initialTask1finalTask.

综上所有的results.initialTask1,results.task1[0],results.task2[0],results.task3[0]在相同的finalTask.这是逻辑async.auto吗?或者它是否像C++中的指针引用那样导致模型的任何变化task1,它也反映在模型中initialTask

async.auto({
    initialTask: function(callback) {
        //Do some operations
        callback(null, name, initialModels);
    },
    task1: ['initialTask', function(callback, results) {
        var models = results.initialTask[1];
        //Add some more data to models
        callback(null, models);
    }],
    task2: ['initialTask', function(callback, results) {
        var models = results.initialTask[1];
        //Add some more data to …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous node.js

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

react类中的成员变量通过引用"共享"

当我创建一个react类的几个实例时(通过在同一个类上使用React.createElement),一些成员变量在实例之间共享(数组和对象是共享的,字符串和布尔值等等).

对我来说,这感觉太可怕,可怕和错误.这是一个错误还是有另一种方法可以做我想做的事情?

请看一下:http: //jsbin.com/kanayiguxu/1/edit?html,js,console,output

javascript reactjs

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

Javascript 是否通过引用或值将数组传递给函数?

据我了解,Javascript通过引用传递对象,数组也是一个对象,但是当我创建一个整数数组然后将它传递给一个函数时,如下代码:

function testFunc(outTestArray) {
  var aiTemp = [1,2,3,4];

  /*Using slice(0) to clone array */
  outTestArray = aiTemp.slice(0);
}

var aiTest = Array.apply(null, Array(4)).map(Number.prototype.valueOf, 0);
testFunc(aiTest);

console.log(aiTest.toString()); // aiTest still [0,0,0,0]
Run Code Online (Sandbox Code Playgroud)

我也知道 slice(0) 函数只返回数组的浅拷贝,但如果数组只是一个整数数组。所以我的问题是为什么aiTest的数据没有被修改?

javascript arrays javascript-objects

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

函数内的JavaScript .push()覆盖了全局变量

.push()方法有以下问题:

var myArray = ["a", "b", "c", "d"];

function add(arr) {
    arr.push("e");
    return arr;
}

add(myArray);

// myArray is now  ["a", "b", "c", "d", "e"]
Run Code Online (Sandbox Code Playgroud)

为什么它会覆盖myArray?无法理解......

javascript arrays global-variables

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

我可以从另一个函数中重新定义JavaScript函数吗?

我想将函数引用"go"传递给另一个函数"redefineFunction",并在"redefineFunction"中重新定义"go".根据Johnathan Snook的说法,函数是通过引用传递的,所以我不明白为什么go()在将它传递给redefineFunction()时没有重新定义.有什么东西我错过了吗?

// redefineFunction() will take a function reference and
// reassign it to a new function
function redefineFunction(fn) {
    fn = function(x) { return x * 3; };
}

// initial version of go()
function go(x) {
    return x;            
}

go(5); // returns 5

// redefine go()
go = function(x) {
     return x * 2;        
}

go(5); // returns 10

// redefine go() using redefineFunction()
redefineFunction(go);

go(5); // still returns 10, I want it to return 15 …
Run Code Online (Sandbox Code Playgroud)

javascript scope function

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

检查范围内的日期

我正在尝试检查格式mm.dd.yyyy的日期是否大于今天且小于今天6个月后的日期.

这是我的代码:

var isLinkExpiryDateWithinRange = function(value) {
    var monthfield = value.split('.')[0];
    var dayfield = value.split('.')[1];
    var yearfield = value.split('.')[2];
    var inputDate = new Date(yearfield, monthfield - 1, dayfield);
    var today = new Date();     
    today = new Date(today.getFullYear(), today.getMonth(), today.getDate());
    alert(inputDate > today);//alert-> true
    var endDate = today;
    endDate.setMonth(endDate.getMonth() + 6);
    alert(inputDate > today);//alert-> false
    if(inputDate > today && inputDate < endDate) {
        alert('1');
    } else {
        alert('2');/always alert it
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我执行isLinkExpiryDateWithinRange('12.08.2012')我希望它将显示1,因为它在范围内,但它显示2.此外,第一个警报显示为真,第二个警告显示为假.

有人可以解释一下发生了什么吗?

javascript date range

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

在JavaScript函数之后保留原始数组

我确信有一个简单的答案,虽然我只有PHP的经验.为什么"披萨"阵列在我将其传递给我的"my_pizza"功能时只会更改为"my_pizza"?如何将原始数组保存到函数外部的函数中?功能运行完毕后,披萨阵列应该没有改变.我注意到,如果我更改了我的字符串变量(pie),它将在函数运行后保持不变,与数组不同.

简而言之,我希望第一组结果与第二组完全相同.

var pizza = [];
pizza.push('crust');
pizza.push('ham');

var pie = "apple"

function bake_goods(my_pizza, my_pie){
    console.log(my_pizza);
    console.log(my_pie);

    delete my_pizza['1'];
    my_pie = "peach";

    console.log(my_pizza);
    console.log(my_pie);
}

//first run

bake_goods(pizza, pie);
//console logs
//['crust','ham']
//apple

//['crust']
//peach

//second run

bake_goods(pizza, pie);
//console logs
//['crust']
//apple

//['crust']
//peach
Run Code Online (Sandbox Code Playgroud)

javascript arrays

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

以下Javascript函数是按值还是通过引用传递参数?我不确定如何区分这两者

我无法弄清楚通过引用传递和通过值传递的内容(我知道它们在理论上的含义).你能告诉我下面的函数是否通过值ore参考传递参数?BTW这是我的第一篇帖子:)

var number_1 = 32;
var number_2 = 43;

function addition(num1,num2) {
    alert (num1*num2) ;
}

addition(number_1,number_2); /*is this passing by reference?*/
Run Code Online (Sandbox Code Playgroud)

javascript reference function

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

使用javascript更改嵌套对象数据

我想影响数组中的所有项目.最终结果将是decodeURIcomponent每个项目.

它不适合我,所以我决定更改每个项目的值来检查代码.它没有改变任何东西.

有没有更好的方法来做到这一点,因为真正的嵌套$.each函数对我来说似乎有点多余.

$(function() {

var hResponse = [];
hResponse.push("firstName", "lastName", "location");

var columns = [];
columns.push({
    "firstName": "Edward",
        "lastName": "Dane",
        "location": " Here"
}, {
    "firstName": "Arthur",
        "lastName": "Dee",
        "location": "There"
}, {
    "firstName": "Cherry",
        "lastName": "Red",
        "location": "OverHere"
});
$.each(columns, function (key, value) {

    $.each(value, function (key1, value2) {

        value2 = "Meeeeep";
        //value2 = decodeURIComponent(value2);
    });

});


$('#my-table').dynatable({
    dataset: {
        records: columns
    }
});
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<link href="https://s3.amazonaws.com/dynatable-docs-assets/css/jquery.dynatable.css" rel="stylesheet"/>
<script src="https://s3.amazonaws.com/dynatable-docs-assets/js/jquery.dynatable.js"></script>

<table id="my-table"> …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

布尔作为基元和布尔作为对象的属性有什么区别?

我正在关注一些画布教程.下面的代码是一个片段.

在这个片段中,他们为什么不选择runAnimation成为一个简单的布尔值?我认为该x = !x声明无论如何都会起作用,但是当我尝试更改代码以使用布尔时,代码不起作用.

那么,作为基元的布尔值和作为对象属性的布尔值之间的区别是什么?

   /*
   * define the runAnimation boolean as an object
   * so that it can be modified by reference
   */
  var runAnimation = {
    value: false
  };

  // add click listener to canvas
  document.getElementById('myCanvas').addEventListener('click', function() {
    // flip flag
    runAnimation.value = !runAnimation.value;
Run Code Online (Sandbox Code Playgroud)

javascript html5-canvas

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