# Equal Sides Of An Array

链接： https://www.codewars.com/kata/5679aa472b8f57fb8c000047

## 题目介绍

You are going to be given an array of integers. Your job is to take that array and find an index N where the sum of the integers to the left of N is equal to the sum of the integers to the right of N. If there is no index that would make this happen, return `-1`

.

For example:

Let's say you are given the array `{1,2,3,4,3,2,1}`

: Your function will return the index 3, because at the 3rd position of the array, the sum of left side of the index (`{1,2,3}`

) and the sum of the right side of the index (`{3,2,1}`

) both equal `6`

.

Let's look at another one.
You are given the array `{1,100,50,-51,1,1}`

: Your function will return the index `1`

, because at the 1st position of the array, the sum of left side of the index (`{1}`

) and the sum of the right side of the index (`{50,-51,1,1}`

) both equal `1`

.

Last one:
You are given the array `{20,10,-80,10,10,15,35}`

At index 0 the left side is `{}`

The right side is `{10,-80,10,10,15,35}`

They both are equal to `0`

when added. (Empty arrays are equal to 0 in this problem)
Index 0 is the place where the left side and right side are equal.

Note: Please remember that in most programming/scripting languages the index of an array starts at 0.

Input:
An integer array of length `0 < arr < 1000`

. The numbers in the array can be any integer positive or negative.

Output:
The lowest index `N`

where the side to the left of `N`

is equal to the side to the right of N. If you do not find an index that fits these rules, then you will return `-1`

.

Note: If you are given an array with multiple answers, return the lowest correct index.

## 参考答案

一句话代码解决方案，我的提交：

```
const findEvenIndex = a => a.findIndex((e, i) =>
a.slice(0, i).reduce((r, c) => r + c, 0) === a.slice(i + 1).reduce((r, c) => r + c, 0));
```

## 拓展阅读

《边学边玩酷JS》