Почему свойство объекта не устанавливается правильно в l oop? - PullRequest
0 голосов
/ 28 февраля 2020

Я перебираю массив и для каждого элемента 1) проверяю, является ли оно свойством в моем объекте, 2) и, если нет, добавляю его в obj как prop с val его индекса. Код здесь в полном объеме, так как я не уверен, какая часть содержит ошибку.

var repeat = function(arr) {

    for(let i=0; i<arr.length; i++){

        const obj = {};

        if (obj.hasOwnProperty(arr[i])) {
            return arr[i]
        } else {
            obj.arr[i] = i;
        }
    }
};

Я получаю сообщение об ошибке «Невозможно установить для свойства« 0 »значение undefined». Я искал похожие вопросы и ошибки, но не нашел ответа в контексте объектов. Был бы признателен за понимание этой конкретной c ошибки и / или где мой код идет не так.

1 Ответ

0 голосов
/ 28 февраля 2020

Вы пытаетесь проверить свойства в пустом объекте. const obj = {}; Вы также должны передать объект в функцию. При добавлении свойства к объекту оно должно выглядеть примерно так: obj ["New Property"] = value. Мы не можем добавлять новые значения, используя. (Точка), поскольку мы получаем доступ к значениям из объектов.

var repeat = function(arr,obj) {

  var pObj = {}
    for(let i=0; i<arr.length; i++){

      if(!obj.hasOwnProperty(arr[i])){
        pObj[arr[i]] = i
      }

    }

  const a = {...obj, ...pObj};
  return a;

};


var myarr= ["a","b","c","d"];
var myObj = {a:"Property A",b:"Property B"};
this.repeat(myarr,myObj)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...