【发布时间】:2021-04-02 08:00:55
【问题描述】:
我正在努力解决这个问题:
你会得到一个整数数组。您的工作是获取该数组并找到一个索引 N,其中整数之和 N 的左边等于 N 右边的整数之和。如果 没有索引可以实现,返回 -1。
例如:
假设给定数组
{1,2,3,4,3,2,1}:你的函数 将返回索引 3,因为在数组的第三个位置, 索引左侧的总和({1,2,3})和右侧的总和 索引的一边({3,2,1})都等于 6。让我们看看另一个。给你数组
{1,100,50,-51,1,1}:你的函数将 返回索引 1,因为在数组的第一个位置,总和 索引左侧的({1})和右侧的总和 index({50,-51,1,1})都等于 1。最后一个:给你数组
{20,10,-80,10,10,15,35}在索引0左边 一边是{}右边是{10,-80,10,10,15,35}他们都是 添加时等于 0。 (本题空数组等于0) 索引0是左右相等的地方。注意:请记住,在大多数编程/脚本语言中,数组的索引从 0 开始。输入:长度为整数的数组
0 < arr < 1000。数组中的数字可以是任何正整数 或否定的。输出:左边的最低索引 N N等于N的右边。如果没有找到索引 符合这些规则,那么您将返回 -1。注意:如果给你 一个有多个答案的数组,返回正确的最低索引。
我用这个代码回答:
function findEvenIndex(arr) {
var index;
for (var i = 0; i < arr.lenght; i++) {
if (arr.slice(0,i+1).reduce((a, b) => a + b, 0) == arr.slice(i + 1 ,).reduce((a, b) => a + b, 0))
{
index = i;
}
}
return index;
}
但问题是函数 return : undefined;当我尝试测试它时。
我的问题是:
-为什么函数得到:未定义?
-我该如何解决?
注意:练习链接“https://www.codewars.com/kata/5679aa472b8f57fb8c000047/train/javascript”
谢谢
【问题讨论】:
-
lenght?你的意思是length?此外,如果if条件永远不会为真,那么结果仍将是undefined。通常,如果找不到索引,则应返回-1。
标签: javascript arrays