我有这个包含 2 个元素的示例 JSON:
[
{
"Fecha":"2018-05-08T00:00:00",
"Proyectado":0,
"Requerido":0,
"Faltante":0,
"stock_resultado":0,
"IdProducto":"88C9B788-2009-47B3-5690-532E2CF84E56",
"Consecutivo":184
},
{
"__KEY__":"4a558959-bb63-68a2-2e87-358d678c6ec8",
"Fecha":"2018/06/16 00:00:00",
"Proyectado":2,
"CantidadProyeccion":"8",
"IdProducto":"7723EE8E-824C-7D19-1205-4B175D4A5DCB"
}
]
从上面的 JSON 中,我需要过滤那些IdProducto
为88C9B788-2009-47B3-5690-532E2CF84E56
.
我试过使用 " filter
" 函数,但它总是返回相同数量的数据"对于这种情况,对象中有(2) 个元素"。
我正在尝试做的示例1:
var arreglo_muestra = [{
"Fecha": "2018-05-08T00:00:00",
"Proyectado": 0,
"Requerido": 0,
"Faltante": 0,
"stock_resultado": 0,
"IdProducto": "88C9B788-2009-47B3-5690-532E2CF84E56",
"Consecutivo": 184
}, {
"__KEY__": "4a558959-bb63-68a2-2e87-358d678c6ec8",
"Fecha": "2018/06/16 00:00:00",
"Proyectado": 2,
"CantidadProyeccion": "8",
"IdProducto": "7723EE8E-824C-7D19-1205-4B175D4A5DCB"
}];
function obtenerProductoPorId(IdProducto) {
return IdProducto = "88C9B788-2009-47B3-5690-532E2CF84E56";
}
function myFunction() {
document.getElementById("demo").innerHTML = JSON.stringify(arreglo_muestra.filter(obtenerProductoPorId));
}
<p>Presione el botón para obtener el objeto filtrado por IdProducto:</p>
<button onclick="myFunction()">Filtrar producto por ID</button>
<p id="demo"></p>
我真的不知道为什么它不能像我想的那样工作。
如何使用.filter()
或其他 javascript 功能过滤此示例对象?
1代码改编自此页面。
正如文档所说,您必须接收一个元素,并在其中满足必须满足的条件,请记住,它将返回另一个对象数组,它可以是零个元素或多个
Mauricio,我提出了这个功能:
它将在参数中接收要过滤的数组、键和值,并将返回结果。
我认为这样代码可以更便携。
我应用了一种对我来说似乎值得推荐的做法:从任何函数中释放 DOM 元素,通过其 id 将其委托给侦听器,这样,DOM 元素更加独立。
使用箭头函数,解决方案有点短,在这个解决方案中,我们将函数
filter
应用于变量array
,作为参数传递每个表示为的对象,e
然后函数将filter
遍历数组中的每个对象,过滤IdProducto
每个遍历的元素并返回条件的结果。这里的文档