Question: The JavaScript filter function not converting the item to integer by using the parseInt. Because of that string concatenation is going on rather than adding the values when used the filtered array in reduce function.

```
    var numbers = ['1', 2, 3, 4,'hello'];

    var intArray=numbers.filter(num => **parseInt(num)**);

    var sum=intArray.reduce((tot, b) => tot+b,0);

```

Answer: 
The trick is to first filter out non int values and then convert all of them to int
filter with isNaN would eliminate hello and map with parseInt will convert strings o number to int

```
var numbers = ['1', 2, 3, 4, 'hello'];
var intArray = numbers
  .filter(num => !isNaN(num)).map(x => parseInt(x))

```
Your `filter` is filtering out the items that cannot be coerced to a number, but the items are still not necessarily numbers - convert them to numbers before using `+` with them, perhaps with `.map`:

```js
var numbers = ['1', 2, 3, 4, 'hello'];
var intArray = numbers
  .filter(num => parseInt(num))
  .map(Number);
var sum = intArray.reduce((tot, b) => tot + b, 0);
console.log(sum);
```

Or, you can do it all at once with `reduce` and `isNaN`:

```js
var numbers = ['1', 2, 3, 4, 'hello'];
var sum = numbers.reduce((tot, b) => {
  if (isNaN(b)) return tot;
  return tot + Number(b);
}, 0);
console.log(sum);
```