过滤对象JS
问题描述:
我试图筛选出一个对象,但不工作....过滤对象JS
这是代码:
let obj = Object.assign({},[{
"_id": 1,
"fecha": "2016-09-28T20:49:00.000Z"
}, {
"_id": 2,
"fecha": "2016-09-26T20:48:00.000Z"
}, {
"_id": 3,
"fecha": "2016-09-26T21:04:00.000Z"
}, {
"_id": 4,
"fecha": "2016-09-23T21:02:00.000Z"
}, {
"_id": 14,
"fecha": "2016-09-24T21:02:00.000Z"
}, {
"_id": 15,
"fecha": "2016-09-24T21:01:00.000Z"
}, {
"_id": 17,
"fecha": "2016-09-23T19:04:00.000Z"
}, {
"_id": 18,
"fecha": "2016-09-23T19:24:00.000Z"
}, {
"_id": 23,
"fecha": "2016-09-23T21:04:00.000Z"
}]
);
console.log(obj);
let result = obj.filter(item => item._id == 1)[0];
console.log(result);
结果是:
对象{0:Object,1:Object,2:Object,3:Object,4:Object,5:Object,6:Object,7:Object,8:Object} 未捕获(承诺)TypeError:obj.find不是一个函数(...)
注:obj不在函数中定义,它来自另一个系统,但我写出来显示您的赤字
答
我不能在Object
上使用Array
的方法。假设您将收据obj
变量作为对象。您应该将其转换为数组。尝试:
Object.keys(obj).map((i) => obj[i]).filter(e => e._id === 1)
+0
非常感谢你! –
+0
检查它作为答案关闭您的问题,请。谢谢 ! =) –
过滤器是一个阵列的方法。如果你做'let obj = [{'那么没有错误 – mplungjan
你不能对'Object'做一个过滤器。 –
'Object.assign({},[])'毫无意义。 – igl