Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Codibility equi 100%答案中的生命目的_Javascript_Algorithm_Callback_Logic_Iife - Fatal编程技术网

Javascript Codibility equi 100%答案中的生命目的

Javascript Codibility equi 100%答案中的生命目的,javascript,algorithm,callback,logic,iife,Javascript,Algorithm,Callback,Logic,Iife,我不明白把}(dataArray)作为iLife的目的,它不只是一个数组,我可以直接引用dataArray?我在任何地方都看不到函数的特殊效果,但如果没有它,Codibility实际上会失败。为什么? 我尝试的是: "use strict"; function solution(dataArray) { var total = function (array) { var arrayLength = array.length; var sum = 0; while

我不明白把
}(dataArray)
作为iLife的目的,它不只是一个数组,我可以直接引用
dataArray
?我在任何地方都看不到函数的特殊效果,但如果没有它,Codibility实际上会失败。为什么?

我尝试的是:

"use strict";

function solution(dataArray) {
  var total = function (array) {
    var arrayLength = array.length;
    var sum = 0;
    while (--arrayLength > -1) {
      sum += array[arrayLength];
    }
    return sum;
  }(dataArray);
  var eq = -1;
  var arrayLength = dataArray.length;
  var Lsum = 0;
  var Rsum = 0;
  dataArray.forEach(function (number, index) {
    Rsum = total - Lsum - number;
    if (Rsum === Lsum) {
      /* in fact no need to continue, should terminate here. */
      eq = index;
    }
    Lsum += number;
  });
  return eq;
}

console.log(solution(  [-1, 3, -4, 5, 1, -6, 2, 1]));

请看这里:

除了结构化代码之外,它似乎没有什么用途(因此,
解决方案
函数以一个带有初始值设定项的数组声明开始。请向我们展示您试图忽略IIFE的情况,以便我们可以知道您在哪里犯了错误(导致了不同的结果)。
var total = function (dataArray) {
    var arrayLength = dataArray.length;
    var sum = 0;
    while (--arrayLength > -1) {
      sum += dataArray[arrayLength];
    }
    return sum;
  };