javascript - 比较对象中的元素

标签 javascript json object

我正在开发一个将结果保存到 json 中的抓取工具,如下所示:

{"Productos" : [
   {"Title":"Grabador de voz ISD1932","Results": [
      {"Stock":1,"Price":11.4,"Fecha":"18-8-2014:3:36"},
      {"Stock":1,"Price":12.4,"Fecha":"18-8-2014:3:38"},
      {"Stock":1,"Price":12.4,"Fecha":"19-8-2014:0:40"},
      {"Stock":1,"Price":12.4,"Fecha":"19-8-2014:21:46"},
      {"Stock":1,"Price":12.4,"Fecha":"21-8-2014:22:4"},
      {"Stock":1,"Price":12.4,"Fecha":"22-8-2014:0:40"},
      {"Stock":1,"Price":12.4,"Fecha":"23-8-2014:0:48"},
      {"Stock":1,"Price":12.4,"Fecha":"23-8-2014:13:56"},
      {"Stock":1,"Price":12.4,"Fecha":"23-8-2014:13:56"},
      {"Stock":1,"Price":12.4,"Fecha":"23-8-2014:13:56"},
      {"Stock":1,"Price":12.4,"Fecha":"23-8-2014:13:56"}, 
      {"Stock":1,"Price":12.4,"Fecha":"23-8-2014:13:56"},
      {"Stock":1,"Price":12.4,"Fecha":"23-8-2014:13:56"}],
    "id":"4a1e90d7-e578-4bd5-b888-38c7bbfb4af5"}]}

所以结果中的第一个元素是:

{"Stock":1,"Price":11.4,"Fecha":"18-8-2014:3:36"} 

第二个是

{"Stock":1,"Price":12.4,"Fecha":"18-8-2014:3:38"} 

第三个是

{"Stock":1,"Price":12.4,"Fecha":"19-8-2014:0:40"} and so.

每次我抓取网页时,它都会添加一个元素。

我想做一个清洁器,如果库存和价格等于前一个元素,但只删除前一个元素,不包括日期。

在这个例子中,由于第三个元素等于第二个,我想删除它。如果 4rth 等于 3rd,则将其删除,依此类推。

最佳答案

您可以使用 array.filter 轻松做到这一点:

var data = ...;

for(var i = 0 ; i < data.Productos.length ; i++) {
    var p = data.Productos[i];
    p.Results = p.Results.filter(function(o, i, a) {
        return i == 0 || !(o.Stock == a[i - 1].Stock && o.Price == a[i - 1].Price);
    });
}

关于javascript - 比较对象中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25740010/

相关文章:

javascript - 在 JavaScript 中过滤 JSON 对象列表的最高性能方法是什么?

javascript - 如何为文本区域创建正则表达式?

sql - 如何让 Oracle 将 JSON 比较为 JSON,而不是字符串

json - 如何使用Moshi将json字符串序列化为org.json.JSONObject?

PHP echo json_encode 逐行而不是最后解决内存问题,这是个坏主意吗?

python sqlAlchemy : got InvalidRequestError after change class location

java - 使用匿名对象的 actionListener 到底是如何工作的?

javascript - 如何在 Angular 中使用 JSON.parse 在新行中返回多个结果?

javascript - Meteor:重定向到该页面后,为页面中的字段设置值

asp.net - 验证后将焦点设置为验证摘要控制时出现问题