У меня есть эта часть объекта:
js: {
cwd: 'src/js',
src: [ "src/js/*.js", "src/js/*.min.js" ],
dest: 'dist/js'
}
Как вставить свойство cwd
свойство src
чтобы оно выглядело следующим образом?
src: [ '${cwd (or js.cwd)}/*.JS .. etc ]
То, что вы хотите, является вычисленным свойством, поэтому используйте getter.
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()
следующим образом:
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);
С распространенным оператором ES2018:
const foo = {
...js,
src: [...js.src, js.cwd]
}