【发布时间】:2020-02-17 01:52:30
【问题描述】:
我想将多个数组连接成一个。我的结果是给出多个对象数组。我想将它们全部推入一个数组中。它们都是 5 个数组。我想将每个对象数组推入 1 个巨型数组。这可能吗?
let data = [{"site_nm": "gs Universe", "date": "2019-10-01", "sigh": 1, "yo": 1, "wokay": 0}, {"site_nm": "gs Gameplay", "date": "2019-10-01", "sigh": 4, "yo": 3, "wokay": 2}, {"site_nm": "gs Universe Trailers", "date": "2019-10-01", "sigh": 5, "yo": 5, "wokay": 0}, {"site_nm": "TR", "date": "2019-10-01", "sigh": 4, "yo": 4, "wokay": 0}, {"site_nm": "gs", "date": "2019-10-01", "sigh": 5, "yo": 5, "wokay": 2}, {"site_nm": "GB", "date": "2019-10-01", "sigh": 1, "yo": 1, "wokay": 1}, {"site_nm": "cn", "date": "2019-10-01", "sigh": 4, "yo": 4, "wokay": 1}, {"site_nm": "Roadshow", "date": "2019-10-01", "sigh": 1, "yo": 1, "wokay": 0}, {"site_nm": "TV", "date": "2019-10-01", "sigh": 1, "yo": 1, "wokay": 0}, {"site_nm": "ZD", "date": "2019-10-01", "sigh": 2, "yo": 2, "wokay": 0}, {"site_nm": "Carfection", "date": "2019-10-01", "sigh": 1, "yo": 1, "wokay": 0}, {"site_nm": "gs Trailers", "date": "2019-10-01", "sigh": 3, "yo": 3, "wokay": 0}, {"site_nm": "gs News", "date": "2019-10-01", "sigh": 3, "yo": 3, "wokay": 0}, {"site_nm": "gs Mobile", "date": "2019-10-01", "sigh": 1, "yo": 1, "wokay": 0}, {"site_nm": "gs Universe Trailers", "date": "2019-10-02", "sigh": 1, "yo": 1, "wokay": 0}, {"site_nm": "gs Gameplay", "date": "2019-10-04", "sigh": 6, "yo": 6, "wokay": 2}, {"site_nm": "Roadshow", "date": "2019-10-02", "sigh": 2, "yo": 2, "wokay": 0}, {"site_nm": "gs", "date": "2019-10-02", "sigh": 3, "yo": 3, "wokay": 2}, {"site_nm": "TR", "date": "2019-10-02", "sigh": 4, "yo": 3, "wokay": 0}, {"site_nm": "cn Highlights", "date": "2019-10-03", "sigh": 8, "yo": 8, "wokay": 0}, {"site_nm": "gs Universe", "date": "2019-10-02", "sigh": 1, "yo": 1, "wokay": 0}, {"site_nm": "cn en Espa\u00f1ol", "date": "2019-10-02", "sigh": 6, "yo": 6, "wokay": 0}, {"site_nm": "gs Trailers", "date": "2019-10-02", "sigh": 2, "yo": 2, "wokay": 0}, {"site_nm": "ZD", "date": "2019-10-02", "sigh": 4, "yo": 4, "wokay": 1}, {"site_nm": "cn", "date": "2019-10-05", "sigh": 5, "yo": 5, "wokay": 1}, {"site_nm": "TV", "date": "2019-10-02", "sigh": 1, "yo": 1, "wokay": 0}, {"site_nm": "CH", "date": "2019-10-02", "sigh": 1, "yo": 1, "wokay": 0}, {"site_nm": "GB", "date": "2019-10-02", "sigh": 3, "yo": 3, "wokay": 3}, {"site_nm": "DLNow", "date": "2019-10-02", "sigh": 1, "yo": 0, "wokay": 0}, {"site_nm": "gs News", "date": "2019-10-02", "sigh": 2, "yo": 2, "wokay": 0}]
let sites = [...new Set(data.map(({
site_nm
}) => site_nm))].sort();
let dates = [...new Set(data.map(({
date
}) => date))].sort();
sites.forEach(myFunction);
function myFunction(item) {
var foo = data.filter(function(e) {
return e.site_nm == item;
});
let foo_dates = [...new Set(foo.map(({
date
}) => date))].sort();
for (
var date = moment(dates[0], "YYYY-MM-DD"); date <= moment(dates[dates.length - 1], "YYYY-MM-DD"); date = date.add(1, 'days')) {
var dateFormatted = date.format("YYYY-MM-DD");
if (!foo_dates.includes(dateFormatted)) {
foo.push({
"site_nm": item,
"date": dateFormatted,
"sigh": "",
"yo": "",
"wokay": ""
});
}
}
console.log(foo);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
我试过了
result = [].concat(...foo);
console.log(result);
但这也没有用。我想在函数之外使用这个巨大的数组。
这是我的输出的样子:
我希望我的数组将所有这些数组合二为一
【问题讨论】:
-
多重数组在哪里?我在你的代码中没有看到。
data是一个包含多个对象的单个数组,而不是数组。 -
@Addis,我的
console.log(foo);正在创建多个数组。 -
你能把完整的代码过去吗?我无法重现该问题。
-
@Addis,这是整个代码。我当前的结果是
[{1,3,4},{1,2,3},{1,2.''}] [{5,3,4},{1,7,3},{1,2.''}] ...在控制台中,它首先打印第一个站点及其对象数组,然后转到下一个站点及其对象数组。我只想将它们全部连接起来,例如:[{1,3,4},{1,2,3},{1,2.''},{5,3,4},{1,7,3},{1,2.''}] -
考虑到您当前的解释,我已经发布了一个答案。看看这个。但是您不再需要
result = [].concat(...foo);。
标签: javascript jquery arrays json javascript-objects