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;
};