簡體   English   中英

在 Javascript 中的數組中將鍵和值添加到一個 object

[英]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);
  1. 打印結果為:

     [ { url: '/contact.html', pageViews: 5, visitors: 4 }, { url: '/home.html', pageViews: 1, visitors: 1 }]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM