为什么这个JavaScript算法没有定义?

为什么这个JavaScript算法没有定义?,javascript,arrays,Javascript,Arrays,我试图解决这个问题: 您将得到一个整数数组。您的工作是获取该数组,并找到一个索引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 +

我试图解决这个问题:

您将得到一个整数数组。您的工作是获取该数组,并找到一个索引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;
}
假设您得到了数组
{1,2,3,4,3,2,1}
:您的函数 将返回索引3,因为在数组的第3个位置 索引
({1,2,3})左侧和右侧的和
索引的边
({3,2,1})
都等于6。让我们看另一个

您将获得数组
{1100,50,-51,1,1}
:您的函数将 返回索引1,因为在数组的第一个位置,和 索引
({1})
左侧和 索引
({50,-51,1,1})
都等于1。最后一个:

在左边的索引0处有一个数组
{20,10,-80,10,10,15,35}
侧面是
{}
右侧是
{10,-80,10,10,15,35}
它们都是 添加时等于0。(在此问题中,空数组等于0) 索引0是左侧和右侧相等的位置

注意:请记住,在大多数编程/脚本语言中,数组的索引从0开始。输入:长度的整数数组
0
。数组中的数字可以是任何正整数 或者是否定的。输出:最小索引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;
}
函数findEvenIndex(arr){
var指数;
对于(变量i=0;ia+b,0)==arr.slice(i+1,).reduce((a,b)=>a+b,0))
{
指数=i;
}
}
收益指数;
}
但问题是函数返回:未定义;当我试着测试它的时候

我的问题是:

 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;
}
-为什么函数得到:未定义

-我怎样才能修好它

注意:练习的链接“”

谢谢


这是你的答案。你的错误是:

  • 长度的拼写不正确
  • 数组
    arr.slice(i)
    反向迭代不正确
  • 函数findEvenIndex(arr){
    设指数=-1;
    对于(变量i=0;ia+b,0);
    让end=arr.slice(i).reduce((a,b)=>a+b,0)
    如果(开始==结束){
    指数=i
    }
    }
    收益指数;
    
    }
    长度
    ?你是说长度吗?此外,如果
    if
    条件从未为真,结果将是
    未定义的
    。通常,如果找不到索引,则应返回
    -1