我有带有数组对的JSON对象,如下所示:
对象{x: Array36159,y: Array36159,年份: Array36159}
小样本为例:
{
"x": [309339618361.619, 102862032084.12102, 72892839276.09761, 46463392384.54194, -39360182208.042145],
"y": [13950252.45052416, 1158787.402385158, -4368238.261400843, 1339913.7393283844, 2085336.6277048483],
"year": [1991, 1991, 1992, 1992, 1992]
}我想每年过滤这个物体。如果JSON数据是数组或键、值对,我可以使用筛选器:
data.filter(function (x) {
return x.year == 1991
});但是由于JSON结构是对平面数组,我不知道如何处理。
预期的结果是:
{
"x": [309339618361.619, 102862032084.12102],
"y": [13950252.45052416, 1158787.402385158],
"year": [1991, 1991]
}发布于 2016-07-02 15:16:55
只需复制obj并迭代year属性的元素并删除不等于1991的元素。
var obj = {
x: [309339618361.619, 102862032084.12102],
y: [13950252.45052416, 1158787.402385158],
year: [1991, 1991]
},
scan = {};
Object.assign(scan, obj);
for(var i = 0, len = scan.year.length; i < len; i ++) {
if(scan.year[i] !== 1991) {
scan.year.splice(i, 1);
}
}
console.log(scan);https://stackoverflow.com/questions/38161363
复制相似问题