意外的Javascript包含拆分和空数组过滤器输出 [英] Javascript Unexpected include splitted and empty array filter output
本文介绍了意外的Javascript包含拆分和空数组过滤器输出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试过滤ID数组中存在ID值结果的数组。
i'm trying to filter array that the results of value id exist in array of id.
此处的数据变量:
var data = [
{
"transaksi": [
{
"_id": "5acb747c9c2be225d995a8f1",
"sebelum_jumlah_sortir": 1,
"harga_produk": 50000,
"kirim": 1,
"pembelian": "5acb747c9c2be225d995a8f9"
},
{
"_id": "5acb7a6a305ef72b7d542900",
"sebelum_jumlah_sortir": 1,
"harga_produk": 50000,
"kirim": 1,
"pembelian": "5acb7a6a305ef72b7d542908"
}
],
"_id": "5acb74239c2be225d995a8ee",
"nama_produk": "Susu"
},
{
"transaksi": [
{
"_id": "5acb747c9c2be225d995a8f2",
"sebelum_jumlah_sortir": 1,
"harga_produk": 20000,
"kirim": 1,
"pembelian": "5acb747c9c2be225d995a8f9"
},
{
"_id": "5acb7a6a305ef72b7d542901",
"sebelum_jumlah_sortir": 1,
"harga_produk": 20000,
"kirim": 1,
"pembelian": "5acb7a6a305ef72b7d542908"
}
],
"_id": "5acb74279c2be225d995a8ef",
"nama_produk": "Remot Tv"
}
]
选定的ID变量:
var ids = [
"5acb747c9c2be225d995a8f1",
"5acb747c9c2be225d995a8f2"
]
过滤器功能:
var filter = function(){
for (id of ids){
for (dataTransaksi of data){
console.log(dataTransaksi.transaksi.filter(transaksi => {
return transaksi._id == id
}))
}
}
}
filter()
预期结果:
[
{
"transaksi": [
{
"_id": "5acb747c9c2be225d995a8f1",
"sebelum_jumlah_sortir": 1,
"harga_produk": 50000,
"kirim": 1,
"pembelian": "5acb747c9c2be225d995a8f9"
}
]
},
{
"transaksi": [
{
"_id": "5acb747c9c2be225d995a8f2",
"sebelum_jumlah_sortir": 1,
"harga_produk": 20000,
"kirim": 1,
"pembelian": "5acb747c9c2be225d995a8f9"
}
]
}
]
实际结果包括空的和分割的:
an actual result include empty and splitted:
谢谢。
推荐答案
您可以使用。 filter()
与 Object.assign()
像这样:
演示:
let data = [{"transaksi": [{"_id": "5acb747c9c2be225d995a8f1", "sebelum_jumlah_sortir": 1, "harga_produk": 50000,"kirim": 1,"pembelian": "5acb747c9c2be225d995a8f9"}, { "_id": "5acb7a6a305ef72b7d542900", "sebelum_jumlah_sortir": 1,"harga_produk": 50000,"kirim": 1,"pembelian": "5acb7a6a305ef72b7d542908"}], "_id": "5acb74239c2be225d995a8ee", "nama_produk": "Susu"},{ "transaksi": [{"_id": "5acb747c9c2be225d995a8f2", "sebelum_jumlah_sortir": 1,"harga_produk": 20000, "kirim": 1,"pembelian": "5acb747c9c2be225d995a8f9"},{"_id": "5acb7a6a305ef72b7d542901","sebelum_jumlah_sortir": 1,"harga_produk": 20000,"kirim": 1, "pembelian": "5acb7a6a305ef72b7d542908"}], "_id": "5acb74279c2be225d995a8ef", "nama_produk": "Remot Tv"}],
ids = ["5acb747c9c2be225d995a8f1", "5acb747c9c2be225d995a8f2"];
let result = data.map(
o => Object.assign(
{}, o, {"transaksi": o["transaksi"].filter(o => ids.includes(o["_id"]))}
)
);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
这篇关于意外的Javascript包含拆分和空数组过滤器输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文