У меня есть эта часть объекта:
js: { cwd: 'src/js', src: [ "src/js/*.js", "src/js/*.min.js" ], dest: 'dist/js' }
Как вставить свойство cwd в свойство src, чтобы оно выглядело следующим образом?
cwd
src
src: [ `${cwd (or js.cwd)}/*.JS .. etc ]
С оператором распространения ES2018 ' :
const foo = { ...js, src: [...js.src, js.cwd] }
То, что вы хотите, является вычисляемым свойством, поэтому используйте геттер.
const js = { cwd: 'src/js', get src() { return [ "/*.js", "/*.min.js" ] .map(ending => this.cwd + ending) }, dest: 'dist/js' } console.log(js)
Вы можете сделать это, используя Array#shift(), Array#map() и Array#push() методы как это:
Array#shift()
Array#map()
Array#push()
js = [js].map(a => { a.src.push(a.cwd); delete a.cwd; return a; }).shift();
Демо:
var js = { cwd: 'src/js', src: ["src/js/*.js", "src/js/*.min.js"], dest: 'dist/js' }; js = [js].map(a => { a.src.push(a.cwd); delete a.cwd; return a; }).shift(); console.log(js);