簡體   English   中英

比較兩個數組,並使用javascript查找每個值計數

[英]Compare two arrays and find each values count using javascript

我有兩個數組。

這是我的數組。

 var arr=[
"08-01-2017",
"07-31-2017",
"07-30-2017",
"07-29-2017",
"07-28-2017",
"07-27-2017",
"07-26-2017"]

這是另一個數組

 var arr1= [
      {
        "HOST": "",
        "U_ID": "",
        "PATH": "Home",
        "REFERER": "",
        "AGENT": "",
        "OS": "",
        "DATE_TIME": "2017-07-31T05:44:06.743Z",
        "S_ID": "80067826-0cad-4806-b40e-8e5d8be18e53",
        "C_ID": "",
        "C_NAME": "",
        "P_ID": "",
        "P_NAME": "",
        "CART_ID": "",
        "O_ID": "",
        "id": "597c20a636c81d38dc77c626"
      },
      {
        "HOST": "",
        "U_ID": "",
        "PATH": "ProductlistPage",
        "REFERER": "Home",
        "AGENT": "",
        "OS": "",
        "DATE_TIME": "2017-07-30T05:44:22.425Z",
        "S_ID": "7fe1795a-5064-43d7-9a62-48b0f156a2c3",
        "C_ID": "1",
        "C_NAME": "Sparklers",
        "P_ID": "",
        "P_NAME": "",
        "CART_ID": "",
        "O_ID": "",
        "id": "597c20b636c81d38dc77c627"
      },
      {
        "HOST": "",
        "U_ID": "",
        "PATH": "ProductlistPage",
        "REFERER": "Home",
        "AGENT": "",
        "OS": "",
        "DATE_TIME": "2017-07-29T05:45:25.064Z",
        "S_ID": "439667fe-ab24-4bf6-959e-152a4f631fe3",
        "C_ID": "595f40038c4d19b50ac21b98",
        "C_NAME": "Sparklers",
        "P_ID": "",
        "P_NAME": "",
        "CART_ID": "",
        "O_ID": "",
        "id": "597c20f536c81d38dc77c628"
      },
      {
        "HOST": "",
        "U_ID": "",
        "PATH": "ProductdetailsPage",
        "REFERER": "ProductlistPage",
        "AGENT": "",
        "OS": "",
        "DATE_TIME": "2017-07-29T05:45:39.047Z",
        "S_ID": "a21c273a-372e-4a81-9997-d468d5efd299",
        "C_ID": "1",
        "C_NAME": "Sparklers",
        "P_ID": "595f3e418c4d19b50ac21b84",
        "P_NAME": "Martina",
        "CART_ID": "",
        "O_ID": "",
        "id": "597c210236c81d38dc77c629"
      },
      {
        "HOST": "",
        "U_ID": "",
        "PATH": "Home",
        "REFERER": "",
        "AGENT": "",
        "OS": "",
        "DATE_TIME": "2017-07-28T05:47:15.604Z",
        "S_ID": "a4278659-8053-45fd-8a95-78766fd7541b",
        "C_ID": "",
        "C_NAME": "",
        "P_ID": "",
        "P_NAME": "",
        "CART_ID": "",
        "O_ID": "",
        "id": "597c216336c81d38dc77c62a"
      },
      {
        "HOST": "",
        "U_ID": "",
        "PATH": "ProductlistPage",
        "REFERER": "Home",
        "AGENT": "",
        "OS": "",
        "DATE_TIME": "2017-07-27T05:47:22.700Z",
        "S_ID": "874bb326-ab02-4061-a029-bef5977d4c65",
        "C_ID": "595f40038c4d19b50ac21b98",
        "C_NAME": "Sparklers",
        "P_ID": "",
        "P_NAME": "",
        "CART_ID": "",
        "O_ID": "",
        "id": "597c216b36c81d38dc77c62b"
      },
      {
        "HOST": "",
        "U_ID": "",
        "PATH": "CartPage",
        "REFERER": "ProductlistPage",
        "AGENT": "",
        "OS": "",
        "DATE_TIME": "2017-07-27T05:47:25.758Z",
        "S_ID": "dd9096f9-79ea-4d86-81ce-149e364ab1ed",
        "C_ID": "1",
        "C_NAME": "Sparklers",
        "P_ID": "",
        "P_NAME": "",
        "CART_ID": "",
        "O_ID": "",
        "id": "597c216d36c81d38dc77c62c"
      },
      {
        "HOST": "",
        "U_ID": "",
        "PATH": "ProductdetailsPage",
        "REFERER": "ProductlistPage",
        "AGENT": "",
        "OS": "",
        "DATE_TIME": "2017-07-29T05:47:42.047Z",
        "S_ID": "4ed84c84-80ec-4494-9ffe-453f19e2c079",
        "C_ID": "1",
        "P_ID": "595f3e418c4d19b50ac21b84",
        "P_NAME": "Martina",
        "CART_ID": "",
        "O_ID": "",
        "id": "597c217d36c81d38dc77c62d"
      },
      {
        "HOST": "",
        "U_ID": "",
        "PATH": "CartPage",
        "REFERER": "ProductdetailsPage",
        "AGENT": "",
        "OS": "",
        "DATE_TIME": "2017-07-29T05:47:45.174Z",
        "S_ID": "91153a97-d79e-4d86-9872-5df51bd7e82f",
        "C_ID": "1",
        "P_ID": "595f3e418c4d19b50ac21b84",
        "P_NAME": "Martina",
        "CART_ID": "",
        "O_ID": "",
        "id": "597c218136c81d38dc77c62e"
      },
      {
        "HOST": "",
        "U_ID": "59687ee6cd62a604e2bb0d1f",
        "PATH": "CustomershippingPage",
        "REFERER": "cartPage",
        "AGENT": "",
        "OS": "",
        "DATE_TIME": "2017-07-29T05:48:20.386Z",
        "S_ID": "46866f41-9f43-4d28-a602-490db68dc029",
        "C_ID": "",
        "C_NAME": "",
        "P_ID": "",
        "P_NAME": "",
        "CART_ID": "597c21a336c81d38dc77c62f",
        "O_ID": "",
        "id": "597c21a436c81d38dc77c630"
      },
      {
        "HOST": "",
        "U_ID": "59687ee6cd62a604e2bb0d1f",
        "PATH": "customerpayment",
        "REFERER": "CustomershippingPage",
        "AGENT": "",
        "OS": "",
        "DATE_TIME": "2017-01-08T05:48:46.356Z",
        "S_ID": "56ad3bd7-854b-42e9-8443-46c514eb2ece",
        "C_ID": "",
        "C_NAME": "",
        "P_ID": "",
        "P_NAME": "",
        "CART_ID": "597c21a336c81d38dc77c62f",
        "O_ID": "",
        "id": "597c21be36c81d38dc77c631"
       }
    ]

我需要比較兩個arrays.find匹配值並計數。

示例arr是一個日期列表,根據DATE_TIME另一個數組arr1

08-01-2017重復一次。 07-29-2017重復五次。

我需要這個輸出

 08-01-2017 - 2 <- Count(How many times repeated)
 07-29-2017 - 5
 07-28-2017 - 3 etc..

每個(arr)值是重復多少次。

我不知道。

請告訴我,

謝謝

您可以將日期標准化為ISO 6801字符串,就像DATE_TIME的時間戳一樣。 然后,僅在一個以日期為鍵的對象中添加一個。

 var data = [{ DATE_TIME: "2017-07-31T05:44:06.743Z" }, { DATE_TIME: "2017-07-30T05:44:22.425Z" }, { DATE_TIME: "2017-07-29T05:45:25.064Z" }, { DATE_TIME: "2017-07-29T05:45:39.047Z" }, { DATE_TIME: "2017-07-28T05:47:15.604Z" }, { DATE_TIME: "2017-07-27T05:47:22.700Z" }, { DATE_TIME: "2017-07-27T05:47:25.758Z" }, { DATE_TIME: "2017-07-29T05:47:42.047Z" }, { DATE_TIME: "2017-07-29T05:47:45.174Z" }, { DATE_TIME: "2017-07-29T05:48:20.386Z" }, { DATE_TIME: "2017-01-08T05:48:46.356Z" }], dates = ["08-01-2017", "07-31-2017", "07-30-2017", "07-29-2017", "07-28-2017", "07-27-2017", "07-26-2017"], count = Object.create(null); dates.forEach(function (d) { count[d.replace(/(..)-(..)-(....)/, '$3-$1-$2')] = 0; }); data.forEach(function (o) { var key = o.DATE_TIME.slice(0, 10); (key in count) && count[key]++; }); console.log(count); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

您可以首先遍歷arr並將其所有日期作為值0的鍵放入結果中。然后可以遍歷arr1並將每個日期用作結果對象的鍵,並保持每個日期的遞增計數。 像這樣的東西:

 var arr=[ "08-01-2017", "07-31-2017", "07-30-2017", "07-29-2017", "07-28-2017", "07-27-2017", "07-26-2017"]; var arr1= [ { "HOST": "", "U_ID": "", "PATH": "Home", "REFERER": "", "AGENT": "", "OS": "", "DATE_TIME": "2017-07-31T05:44:06.743Z", "S_ID": "80067826-0cad-4806-b40e-8e5d8be18e53", "C_ID": "", "C_NAME": "", "P_ID": "", "P_NAME": "", "CART_ID": "", "O_ID": "", "id": "597c20a636c81d38dc77c626" }, { "HOST": "", "U_ID": "", "PATH": "ProductlistPage", "REFERER": "Home", "AGENT": "", "OS": "", "DATE_TIME": "2017-07-30T05:44:22.425Z", "S_ID": "7fe1795a-5064-43d7-9a62-48b0f156a2c3", "C_ID": "1", "C_NAME": "Sparklers", "P_ID": "", "P_NAME": "", "CART_ID": "", "O_ID": "", "id": "597c20b636c81d38dc77c627" }, { "HOST": "", "U_ID": "", "PATH": "ProductlistPage", "REFERER": "Home", "AGENT": "", "OS": "", "DATE_TIME": "2017-07-29T05:45:25.064Z", "S_ID": "439667fe-ab24-4bf6-959e-152a4f631fe3", "C_ID": "595f40038c4d19b50ac21b98", "C_NAME": "Sparklers", "P_ID": "", "P_NAME": "", "CART_ID": "", "O_ID": "", "id": "597c20f536c81d38dc77c628" }, { "HOST": "", "U_ID": "", "PATH": "ProductdetailsPage", "REFERER": "ProductlistPage", "AGENT": "", "OS": "", "DATE_TIME": "2017-07-29T05:45:39.047Z", "S_ID": "a21c273a-372e-4a81-9997-d468d5efd299", "C_ID": "1", "C_NAME": "Sparklers", "P_ID": "595f3e418c4d19b50ac21b84", "P_NAME": "Martina", "CART_ID": "", "O_ID": "", "id": "597c210236c81d38dc77c629" }, { "HOST": "", "U_ID": "", "PATH": "Home", "REFERER": "", "AGENT": "", "OS": "", "DATE_TIME": "2017-07-28T05:47:15.604Z", "S_ID": "a4278659-8053-45fd-8a95-78766fd7541b", "C_ID": "", "C_NAME": "", "P_ID": "", "P_NAME": "", "CART_ID": "", "O_ID": "", "id": "597c216336c81d38dc77c62a" }, { "HOST": "", "U_ID": "", "PATH": "ProductlistPage", "REFERER": "Home", "AGENT": "", "OS": "", "DATE_TIME": "2017-07-27T05:47:22.700Z", "S_ID": "874bb326-ab02-4061-a029-bef5977d4c65", "C_ID": "595f40038c4d19b50ac21b98", "C_NAME": "Sparklers", "P_ID": "", "P_NAME": "", "CART_ID": "", "O_ID": "", "id": "597c216b36c81d38dc77c62b" }, { "HOST": "", "U_ID": "", "PATH": "CartPage", "REFERER": "ProductlistPage", "AGENT": "", "OS": "", "DATE_TIME": "2017-07-27T05:47:25.758Z", "S_ID": "dd9096f9-79ea-4d86-81ce-149e364ab1ed", "C_ID": "1", "C_NAME": "Sparklers", "P_ID": "", "P_NAME": "", "CART_ID": "", "O_ID": "", "id": "597c216d36c81d38dc77c62c" }, { "HOST": "", "U_ID": "", "PATH": "ProductdetailsPage", "REFERER": "ProductlistPage", "AGENT": "", "OS": "", "DATE_TIME": "2017-07-29T05:47:42.047Z", "S_ID": "4ed84c84-80ec-4494-9ffe-453f19e2c079", "C_ID": "1", "P_ID": "595f3e418c4d19b50ac21b84", "P_NAME": "Martina", "CART_ID": "", "O_ID": "", "id": "597c217d36c81d38dc77c62d" }, { "HOST": "", "U_ID": "", "PATH": "CartPage", "REFERER": "ProductdetailsPage", "AGENT": "", "OS": "", "DATE_TIME": "2017-07-29T05:47:45.174Z", "S_ID": "91153a97-d79e-4d86-9872-5df51bd7e82f", "C_ID": "1", "P_ID": "595f3e418c4d19b50ac21b84", "P_NAME": "Martina", "CART_ID": "", "O_ID": "", "id": "597c218136c81d38dc77c62e" }, { "HOST": "", "U_ID": "59687ee6cd62a604e2bb0d1f", "PATH": "CustomershippingPage", "REFERER": "cartPage", "AGENT": "", "OS": "", "DATE_TIME": "2017-07-29T05:48:20.386Z", "S_ID": "46866f41-9f43-4d28-a602-490db68dc029", "C_ID": "", "C_NAME": "", "P_ID": "", "P_NAME": "", "CART_ID": "597c21a336c81d38dc77c62f", "O_ID": "", "id": "597c21a436c81d38dc77c630" }, { "HOST": "", "U_ID": "59687ee6cd62a604e2bb0d1f", "PATH": "customerpayment", "REFERER": "CustomershippingPage", "AGENT": "", "OS": "", "DATE_TIME": "2017-01-08T05:48:46.356Z", "S_ID": "56ad3bd7-854b-42e9-8443-46c514eb2ece", "C_ID": "", "C_NAME": "", "P_ID": "", "P_NAME": "", "CART_ID": "597c21a336c81d38dc77c62f", "O_ID": "", "id": "597c21be36c81d38dc77c631" } ]; var result = {}; arr.forEach(function(date){ result[date] = 0; }) arr1.forEach(function(ob){ var date = new Date(ob['DATE_TIME']); var m = date.getMonth() + 1; m = m > 9 ? m : '0' + m; var d = date.getDate() + 1; d = d > 9 ? d : '0' + d; date = m + '-' + d + '-' + date.getFullYear(); result[date] = date in result ? parseInt(result[date]) + 1 : 1; }) console.log(result); 

您可以從ISO日期中提取日期,然后從User array#reduce和array#filter中提取日期以對出現的次數進行計數。

 const arr=["08-01-2017","07-31-2017","07-30-2017","07-29-2017","07-28-2017","07-27-2017","07-26-2017"]; const arr1= [ { "HOST": "", "U_ID": "", "PATH": "Home", "REFERER": "", "AGENT": "", "OS": "", "DATE_TIME": "2017-07-31T05:44:06.743Z", "S_ID": "80067826-0cad-4806-b40e-8e5d8be18e53", "C_ID": "", "C_NAME": "", "P_ID": "", "P_NAME": "", "CART_ID": "", "O_ID": "", "id": "597c20a636c81d38dc77c626" }, { "HOST": "", "U_ID": "", "PATH": "ProductlistPage", "REFERER": "Home", "AGENT": "", "OS": "", "DATE_TIME": "2017-07-30T05:44:22.425Z", "S_ID": "7fe1795a-5064-43d7-9a62-48b0f156a2c3", "C_ID": "1", "C_NAME": "Sparklers", "P_ID": "", "P_NAME": "", "CART_ID": "", "O_ID": "", "id": "597c20b636c81d38dc77c627" }, { "HOST": "", "U_ID": "", "PATH": "ProductlistPage", "REFERER": "Home", "AGENT": "", "OS": "", "DATE_TIME": "2017-07-29T05:45:25.064Z", "S_ID": "439667fe-ab24-4bf6-959e-152a4f631fe3", "C_ID": "595f40038c4d19b50ac21b98", "C_NAME": "Sparklers", "P_ID": "", "P_NAME": "", "CART_ID": "", "O_ID": "", "id": "597c20f536c81d38dc77c628" }, { "HOST": "", "U_ID": "", "PATH": "ProductdetailsPage", "REFERER": "ProductlistPage", "AGENT": "", "OS": "", "DATE_TIME": "2017-07-29T05:45:39.047Z", "S_ID": "a21c273a-372e-4a81-9997-d468d5efd299", "C_ID": "1", "C_NAME": "Sparklers", "P_ID": "595f3e418c4d19b50ac21b84", "P_NAME": "Martina", "CART_ID": "", "O_ID": "", "id": "597c210236c81d38dc77c629" }, { "HOST": "", "U_ID": "", "PATH": "Home", "REFERER": "", "AGENT": "", "OS": "", "DATE_TIME": "2017-07-28T05:47:15.604Z", "S_ID": "a4278659-8053-45fd-8a95-78766fd7541b", "C_ID": "", "C_NAME": "", "P_ID": "", "P_NAME": "", "CART_ID": "", "O_ID": "", "id": "597c216336c81d38dc77c62a" }, { "HOST": "", "U_ID": "", "PATH": "ProductlistPage", "REFERER": "Home", "AGENT": "", "OS": "", "DATE_TIME": "2017-07-27T05:47:22.700Z", "S_ID": "874bb326-ab02-4061-a029-bef5977d4c65", "C_ID": "595f40038c4d19b50ac21b98", "C_NAME": "Sparklers", "P_ID": "", "P_NAME": "", "CART_ID": "", "O_ID": "", "id": "597c216b36c81d38dc77c62b" }, { "HOST": "", "U_ID": "", "PATH": "CartPage", "REFERER": "ProductlistPage", "AGENT": "", "OS": "", "DATE_TIME": "2017-07-27T05:47:25.758Z", "S_ID": "dd9096f9-79ea-4d86-81ce-149e364ab1ed", "C_ID": "1", "C_NAME": "Sparklers", "P_ID": "", "P_NAME": "", "CART_ID": "", "O_ID": "", "id": "597c216d36c81d38dc77c62c" }, { "HOST": "", "U_ID": "", "PATH": "ProductdetailsPage", "REFERER": "ProductlistPage", "AGENT": "", "OS": "", "DATE_TIME": "2017-07-29T05:47:42.047Z", "S_ID": "4ed84c84-80ec-4494-9ffe-453f19e2c079", "C_ID": "1", "P_ID": "595f3e418c4d19b50ac21b84", "P_NAME": "Martina", "CART_ID": "", "O_ID": "", "id": "597c217d36c81d38dc77c62d" }, { "HOST": "", "U_ID": "", "PATH": "CartPage", "REFERER": "ProductdetailsPage", "AGENT": "", "OS": "", "DATE_TIME": "2017-07-29T05:47:45.174Z", "S_ID": "91153a97-d79e-4d86-9872-5df51bd7e82f", "C_ID": "1", "P_ID": "595f3e418c4d19b50ac21b84", "P_NAME": "Martina", "CART_ID": "", "O_ID": "", "id": "597c218136c81d38dc77c62e" }, { "HOST": "", "U_ID": "59687ee6cd62a604e2bb0d1f", "PATH": "CustomershippingPage", "REFERER": "cartPage", "AGENT": "", "OS": "", "DATE_TIME": "2017-07-29T05:48:20.386Z", "S_ID": "46866f41-9f43-4d28-a602-490db68dc029", "C_ID": "", "C_NAME": "", "P_ID": "", "P_NAME": "", "CART_ID": "597c21a336c81d38dc77c62f", "O_ID": "", "id": "597c21a436c81d38dc77c630" }, { "HOST": "", "U_ID": "59687ee6cd62a604e2bb0d1f", "PATH": "customerpayment", "REFERER": "CustomershippingPage", "AGENT": "", "OS": "", "DATE_TIME": "2017-01-08T05:48:46.356Z", "S_ID": "56ad3bd7-854b-42e9-8443-46c514eb2ece", "C_ID": "", "C_NAME": "", "P_ID": "", "P_NAME": "", "CART_ID": "597c21a336c81d38dc77c62f", "O_ID": "", "id": "597c21be36c81d38dc77c631" } ] var result = arr.reduce((result, date) => { var occurances = arr1.filter((obj) => { let d = new Date(obj['DATE_TIME']); var day = d.getDate(); var month = d.getMonth() + 1; var year = d.getFullYear(); if(day < 10){ day='0'+day; } if(month<10){ month='0'+month; } var newDate = month+'-'+day+'-'+year; return date === newDate; }).length; result[date] = occurances; return result; },{}); console.log(result); 

假定日期部分具有固定數量的字符似乎是安全的。 因此:

arr1.reduce((acc, item) => {
  const key = item.DATE_TIME.substr(0,10);
  if (arr.hasOwnProperty(key)) { acc[key] = (acc[key] || 0) + 1 }
  return acc;
}, {})

暫無
暫無

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

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