Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将两个数组值连接到JS对象的同级键/值对中_Javascript_Oop - Fatal编程技术网

Javascript 如何将两个数组值连接到JS对象的同级键/值对中

Javascript 如何将两个数组值连接到JS对象的同级键/值对中,javascript,oop,Javascript,Oop,正在进行一些复杂的Web包配置,但不知道如何在同一个js对象中将两个数组合并到一个新数组中。有人看到问题了吗?我希望连接sass.fileNames.public和sass.fileNames.private并创建sass.all,如下所示 [‘样式’、‘打印’、‘自定义’、‘屏幕’] var-sass={ 文件名:{ 公共:[“样式”,“打印”], 私有:[“自定义”,“屏幕”], 全部:this.fileNames.public.concat(this.fileNames.private)

正在进行一些复杂的Web包配置,但不知道如何在同一个js对象中将两个数组合并到一个新数组中。有人看到问题了吗?我希望连接sass.fileNames.publicsass.fileNames.private并创建sass.all,如下所示

[‘样式’、‘打印’、‘自定义’、‘屏幕’]

var-sass={
文件名:{
公共:[“样式”,“打印”],
私有:[“自定义”,“屏幕”],
全部:this.fileNames.public.concat(this.fileNames.private),
},
文件路径:{
//公共网站样式表
公众:{
条目:'./条目路径',
},
//管理私有样式表
私人:{
条目:'./条目',
},
},
文件类型:“.scss”,//可以更改为.sass或.scss,具体取决于使用的格式

};为什么不在定义之后再重新定义呢?像这样

var-sass={
文件名:{
公共:[“样式”,“打印”],
私有:[“自定义”,“屏幕”],
//全部:this.fileNames.public.concat(this.fileNames.private),
},
文件路径:{
//公共网站样式表
公众:{
条目:'./条目路径',
},
//管理私有样式表
私人:{
条目:'./条目',
},
},
文件类型:“.scss”,//可以更改为.sass或.scss,具体取决于使用的格式
};
sass.fileNames.all=sass.fileNames.public.concat(sass.fileNames.private);

console.log(JSON.stringify(sass))
为什么不在定义之后对其进行解析?像这样

var-sass={
文件名:{
公共:[“样式”,“打印”],
私有:[“自定义”,“屏幕”],
//全部:this.fileNames.public.concat(this.fileNames.private),
},
文件路径:{
//公共网站样式表
公众:{
条目:'./条目路径',
},
//管理私有样式表
私人:{
条目:'./条目',
},
},
文件类型:“.scss”,//可以更改为.sass或.scss,具体取决于使用的格式
};
sass.fileNames.all=sass.fileNames.public.concat(sass.fileNames.private);

console.log(JSON.stringify(sass))
我看到了一个解决方案,将public和private放在对象的外部,并将其放在内部

var public=['style','print'],
private=[“自定义”、“屏幕”];
var sass={
文件名:{
公众:公众,,
私人:私人,,
所有:公共。康卡特(私人),
},
文件路径:{
//公共网站样式表
公众:{
条目:'./条目路径',
},
//管理私有样式表
私人:{
条目:'./条目',
},
},
文件类型:“.scss”,//可以更改为.sass或.scss,具体取决于使用的格式
};

控制台日志(sass)我只是看到了一个解决方案,将公共和私有放在对象的外部,并将其放在内部

var public=['style','print'],
private=[“自定义”、“屏幕”];
var sass={
文件名:{
公众:公众,,
私人:私人,,
所有:公共。康卡特(私人),
},
文件路径:{
//公共网站样式表
公众:{
条目:'./条目路径',
},
//管理私有样式表
私人:{
条目:'./条目',
},
},
文件类型:“.scss”,//可以更改为.sass或.scss,具体取决于使用的格式
};

控制台日志(sass)可以在对象上设置一个函数来执行您想要执行的操作,因为该函数应用了“this”,因此该函数可以返回“this”并删除自身,以禁用进一步的使用

var sass = {
    fileNames:{
        public:['styles', 'print'],
        private:['custom', 'screen'],
    },
    filePaths:{
        // PUBLIC WEBSITE STYLESHEETS
        public:{
            entry: './entry-path',
        },
        // ADMIN PRIVATE STYLESHEETS
        private:{
            entry: './entry',
        },
    },
    fileType: ".scss", // Can be changed to .sass or .scss depending on format used,

    updateAllFileNames: function(){

        // set values as you want
        this.fileNames.all = Array.prototype.concat.apply(
            this.fileNames.public,
            this.fileNames.private
        )

        // delete the function so it will not be usable anymore
        delete this.updateAllFileNames

        // return self in order to assign the sass object
        return this;
    }
}.updateAllFileNames()

可以在对象上设置一个函数来执行您想要执行的操作,因为该函数应用了“this”,因此该函数可以返回“this”并删除自身,以禁用进一步的使用

var sass = {
    fileNames:{
        public:['styles', 'print'],
        private:['custom', 'screen'],
    },
    filePaths:{
        // PUBLIC WEBSITE STYLESHEETS
        public:{
            entry: './entry-path',
        },
        // ADMIN PRIVATE STYLESHEETS
        private:{
            entry: './entry',
        },
    },
    fileType: ".scss", // Can be changed to .sass or .scss depending on format used,

    updateAllFileNames: function(){

        // set values as you want
        this.fileNames.all = Array.prototype.concat.apply(
            this.fileNames.public,
            this.fileNames.private
        )

        // delete the function so it will not be usable anymore
        delete this.updateAllFileNames

        // return self in order to assign the sass object
        return this;
    }
}.updateAllFileNames()

是的,我知道这会管用的,我现在就是这样做的。我只是想把它简化一些,但不知道如何让它工作。是的,我知道它会工作,这就是我目前的工作方式。我只是想进一步简化它,但不知道如何使它工作。这会工作,但比我目前在对象之外做作业更详细。我同意,尽管如此,答案与如何使用同一对象相关,根据将工作的问题,但比我现在有的更详细,在对象之外做作业。我同意,根据问题,答案仍然与如何使用同一对象相关