我正在开发一个将结果保存到 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/