• Как красиво записать присвоение на js?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    есть всякие костыли модули для этого. Например, sindresorhus/dot-prop

    Мой вариант на коленке:
    const setPropChain = (obj, path, value) => {
      path.split('.').reduce((acc, c, i, arr) => {
        if (!acc.hasOwnProperty(c)) acc[c] = {};
        if (typeof acc[c] !== "object") throw "Not an object prop " + c;
        if (i === arr.length - 1) acc[c] = value;
        return acc[c];
      }, obj);
      return obj;
    }
    
    // использование:
    setPropChain({"test": 0}, "make.some.noise", "habr")

    Результат:
    {
      "test": 0,
      "make": {
        "some": {
          "noise": "habr"
        }
      }
    }
    Ответ написан
    Комментировать