如何在JavaScript中的对象内插变量?

时间:2018-10-24 13:16:55

标签: javascript object ecmascript-6 properties

我有对象的这一部分:

js: {
    cwd: 'src/js',
    src: [ "src/js/*.js", "src/js/*.min.js" ],
    dest: 'dist/js'
}

如何将cwd属性插入到src属性中,使其看起来如下所示?

src: [ `${cwd (or js.cwd)}/*.JS .. etc ]

3 个答案:

答案 0 :(得分:0)

您可以使用 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);

答案 1 :(得分:0)

使用ES2018'spread operator

const foo = {
    ...js,
  src: [...js.src, js.cwd]
}

答案 2 :(得分:0)

您想要的是计算属性,因此请使用吸气剂。

const js = {
    cwd: 'src/js',
    get src() {
      return [ "/*.js", "/*.min.js" ]
        .map(ending => this.cwd + ending)
     },
    dest: 'dist/js'
}

console.log(js)