vitaly_74
@vitaly_74

Js пишет ошибку «is not a function», в чем проблема?

var trans = {
    build : function (arr) {
        var len = arr.length;
        var result = [];
        arr.forEach(function(val,i,arr2){
            var search = this.searchArr(val,result);
            if (search[0]===1){
                result[search[1]].count++;
            }else{
                result.push({value:val,count:1});
            }
        });
        return result;
    },
    /*
    * Ищет указанное значение в массиве, и выводит индекс этого значения
    * @param valSearch - искомое значение
    * @param arr - массив в котором производить поиск
    * @return - 0 - если не найдено
    * @return - [1,index] - [1, индекс элемента] - если найдено
    * */
    searchArr : function (valSearch, arr) {
        arr.forEach(function (val,i,arr2) {
            if (val.value==valSearch){
                return [1,i];
            }
        });
        return 0;
    }

}
var array = [1,1,2,3,4,5,6,6,5,5,5,4,3,2,1,1,7];
p1 = trans.build(array);

пишет TypeError: this.searchArr is not a function вроде все правильно написал
  • Вопрос задан
  • 763 просмотра
Решения вопроса 1
SecretBrain
@SecretBrain
still trainee
Кажется у вас контекст потерян используйте стрелочную функцию или биндите this.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 12:53
25000 руб./за проект
22 нояб. 2024, в 12:20
10000 руб./за проект
22 нояб. 2024, в 11:53
3000 руб./за проект