[英]Add key and values to an object in an array in Javascript
我想在 resultLog 中將鍵和值添加到我的對象中,我已經嘗試了幾種不同的方法,但沒有成功。 (進一步了解我想要實現的目標)。
到目前為止,這是我的 output:
我已經將我的數組推入對象並添加了鍵.....但現在我卡住了。
let result = [5, 4, 1, 1];
let resultLog = [];
for (let i = 0; i < result.length - 1; i += 2) {
resultLog.push({ pageViews: result[i], visitors: result[i + 1] });
}
console.log(resultLog);
// output [{pageViews: 5, visitors: 4},{ pageViews: 1, visitors: 1}]
我需要為每個 object 添加鍵和值,但我該怎么做呢? 我看過.splice
或.unshift
,但無法正常工作。
這就是我希望它看起來像的樣子:
let result = [
{ url: "/contac.html", pageViews: 5, visitors: 4 },
{ url: "/home.html", pageViews: 1, visitors: 1 }
];
console.log(result)
console.table(result);
這是我提取每個 url 的唯一用戶數和 pageViews 數的數組。
const filtered =[
"|2019-03-01 09:00:00UTC |/contact.html |12345 |",
"|2019-03-01 09:00:00UTC |/contact.html |12346 |",
"|2019-03-01 10:00:00UTC |/contact.html |12345 |",
"|2019-03-01 10:30:00UTC |/home.html |12347 |",
"|2019-03-01 11:00:00UTC |/contact.html |12347 |",
"|2019-03-02 11:00:00UTC |/contact.html |12348 |"]
你可以試試這個
var obj= {array:[]};
for (let i = 0; i < result.length - 1; i += 2) {
obj.array.push({ pageViews: result[i], visitors: result[i + 1] });
}
const filtered = [
"|2019-03-01 09:00:00UTC |/contact.html |12345 |",
"|2019-03-01 09:00:00UTC |/contact.html |12346 |",
"|2019-03-01 10:00:00UTC |/contact.html |12345 |",
"|2019-03-01 10:30:00UTC |/home.html |12347 |",
"|2019-03-01 11:00:00UTC |/contact.html |12347 |",
"|2019-03-02 11:00:00UTC |/contact.html |12348 |"]
1.統計頁面瀏覽量和訪問者
const pageDict = filtered.reduce((prev, cur) => {
// remove first `|` and last `|`
const record = cur.replace(/(^\|)|(\|$)/g, '');
const [time, url, userId] = record.split('|').map((v) => v.trim());
if (url in prev) {
prev[url].pageViews++;
prev[url].visitors.add(userId);
} else {
// if url not in prev, init
prev[url] = {
pageViews: 1,
visitors: new Set([userId]),
}
}
return prev;
}, {});
2.格式化數據
const result = Object.entries(pageDict).map(([key, value]) => {
const { pageViews, visitors } = value;
return {
url: key,
pageViews: pageViews,
visitors: visitors.size,
}
})
console.log(result);
打印結果為:
[ { url: '/contact.html', pageViews: 5, visitors: 4 }, { url: '/home.html', pageViews: 1, visitors: 1 }]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.