Возьмите среднее значение элементов массива - PullRequest
0 голосов
/ 04 февраля 2019

Попробуйте получить среднее значение.У меня есть данные JSON, идущие внутрь, собирающие массив и использующие функцию усреднения.Но ошибка возвращается ...

TypeError: arr.reduce не является функцией

Это с первого console.log(myArray), как на скриншоте ниже.и второй console.log с функцией avg, не работает ...

data() {
    return {
        myArray:[],
    }
},    
methods: {
    avgArray: function(){
        const sum = arr => arr.reduce((a,c) => (a + c));
        const avg = arr => sum(arr) / arr.length;
        this.estates.forEach((a, index) => {
            this.myArray = a.m2_price;
            console.log(this.myArray);
        });

        console.log(avg(this.myArray));
    }
}

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019
avgArray: function(){
    const sum = arr => arr.reduce((a,c) => (a += c),0); // add equals and init with 0
    const avg = arr => sum(arr) / arr.length;
    this.myArray = this.estates.map(a =>  a.m2_price)
    console.log(avg(this.myArray));
}

Вы устанавливали this.myArray как значение, а не как массив.Вы могли бы либо нажать m2_price, либо отобразить его, как указано выше

Функция Reduce существует только для массивов.Очевидно, вы регистрировали this.myArray и получали целые числа.Отсюда и ошибка.

0 голосов
/ 04 февраля 2019

Это то, что уменьшить для

const average = array => (array && array.length) ? (array.reduce((sum, item) => sum + item, 0) / array.length) : undefined;


console.log(average([1,2,3,4,5,6]));

экспорт функции усреднения из файла average.js

Применимо к вашей ситуации

import { average } from 'pathToYourIncludeLibrary/average';

data() {
    return {
        myArray:[],
    }
},    
methods: {
    avgArray: () => average(this.myArray)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...