Javascript意外包含拆分的空数组筛选器输出
我正在尝试筛选id的数组中是否存在值id的结果 以下是数据变量:Javascript意外包含拆分的空数组筛选器输出,javascript,arrays,Javascript,Arrays,我正在尝试筛选id的数组中是否存在值id的结果 以下是数据变量: var data = [ { "transaksi": [ { "_id": "5acb747c9c2be225d995a8f1", "sebelum_jumlah_sortir": 1, "harga_produk": 50000, "kirim": 1,
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"
}
]
var ids = [
"5acb747c9c2be225d995a8f1",
"5acb747c9c2be225d995a8f2"
]
所选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"
}
]
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"
}
]
}
]
实际结果包括空和拆分:
谢谢。您可以将.filter()
与对象.assign()一起使用,如下所示:
演示:
[代码>让数据<<代码>让数据=[{“交易”的意思是:“{”的意思是:“,,,,,,“sebelum-U-Ju姆拉赫·索提尔”:1,“哈格农产品:50000,”基里姆:1,“基里姆”:1,“佩里姆”:1,“佩贝利姆”:1,“Pe伯利安:1,”Pe伯利安:1,“Pebebebebe层::“,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,A8EE“,“nama-ProduUUUUUUUUUUUUUUU-ProduUUUUUUUU-ProduUUU-ProduUUUUUU-UUUU-UUUUU-ProUUUUU-ProDuUUUU-UUUUUU-UUU-ProUUUUU-UUUSU“:::::“SUSUSUSUSUSUSU“,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,C2BE225D995A8EF“,“nama_produk”:“远程电视”}],
ids=[“5acb747c9c2be225d995a8f1”,“5acb747c9c2be225d995a8f2”];
让结果=data.map(
o=>Object.assign(
{},o,{“transaksi”:o[“transaksi”].filter(o=>ids.includes(o[“\u id”]))
)
);
控制台日志(结果)代码>
.as控制台包装{max height:100%!important;top:0;}
您可以将.filter()
与对象.assign()一起使用,如下所示:
演示:
[代码>让数据<<代码>让数据=[{“交易”的意思是:“{”的意思是:“,,,,,,“sebelum-U-Ju姆拉赫·索提尔”:1,“哈格农产品:50000,”基里姆:1,“基里姆”:1,“佩里姆”:1,“佩贝利姆”:1,“Pe伯利安:1,”Pe伯利安:1,“Pebebebebe层::“,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,A8EE“,“nama-ProduUUUUUUUUUUUUUUU-ProduUUUUUUUU-ProduUUU-ProduUUUUUU-UUUU-UUUUU-ProUUUUU-ProDuUUUU-UUUUUU-UUU-ProUUUUU-UUUSU“:::::“SUSUSUSUSUSUSU“,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,C2BE225D995A8EF“,“nama_produk”:“远程电视”}],
ids=[“5acb747c9c2be225d995a8f1”,“5acb747c9c2be225d995a8f2”];
让结果=data.map(
o=>Object.assign(
{},o,{“transaksi”:o[“transaksi”].filter(o=>ids.includes(o[“\u id”]))
)
);
控制台日志(结果)代码>
。作为控制台包装{最大高度:100%!重要;顶部:0;}
var数据=[
{
“transaksi”:[
{
“_id”:“5acb747c9c2be225d995a8f1”,
“sebelum_jumlah_sortir”:1,
“哈尔加·普罗杜克”:50000,
“基里姆”:1,
“pembelian”:“5acb747c9c2be225d995a8f9”
},
{
“_id”:“5acb7a6a305ef72b7d542900”,
“sebelum_jumlah_sortir”:1,
“哈尔加·普罗杜克”:50000,
“基里姆”:1,
“pembelian”:“5acb7a6a305ef72b7d542908”
}
],
“_id”:“5acb74239c2be225d995a8ee”,
“nama_produk”:“Susu”
},
{
“transaksi”:[
{
“_id”:“5acb747c9c2be225d995a8f2”,
“sebelum_jumlah_sortir”:1,
“哈格·普罗杜克”:20000,
“基里姆”:1,
“pembelian”:“5acb747c9c2be225d995a8f9”
},
{
“_id”:“5acb7a6a305ef72b7d542901”,
“sebelum_jumlah_sortir”:1,
“哈格·普罗杜克”:20000,
“基里姆”:1,
“pembelian”:“5acb7a6a305ef72b7d542908”
}
],
“_id”:“5acb74279c2be225d995a8ef”,
“nama_produk”:“远程电视”
}
]
变量ID=[
“5acb747c9c2be225d995a8f1”,
“5acb747c9c2be225d995a8f2”
]
设res=data.filter(d=>ids.indexOf(d.\u id)=-1)
控制台日志(res)代码>
var数据=[
{
“transaksi”:[
{
“_id”:“5acb747c9c2be225d995a8f1”,
“sebelum_jumlah_sortir”:1,
“哈尔加·普罗杜克”:50000,
“基里姆”:1,
“pembelian”:“5acb747c9c2be225d995a8f9”
},
{
“_id”:“5acb7a6a305ef72b7d542900”,
“sebelum_jumlah_sortir”:1,
“哈尔加·普罗杜克”:50000,
“基里姆”:1,
“pembelian”:“5acb7a6a305ef72b7d542908”
}
],
“_id”:“5acb74239c2be225d995a8ee”,
“nama_produk”:“Susu”
},
{
“transaksi”:[
{
“_id”:“5acb747c9c2be225d995a8f2”,
“sebelum_jumlah_sortir”:1,
“哈格·普罗杜克”:20000,
“基里姆”:1,
“pembelian”:“5acb747c9c2be225d995a8f9”
},
{
“_id”:“5acb7a6a305ef72b7d542901”,
“sebelum_jumlah_sortir”:1,
“哈格·普罗杜克”:20000,
“基里姆”:1,
“pembelian”:“5acb7a6a305ef72b7d542908”
}
],
“_id”:“5acb74279c2be225d995a8ef”,
“nama_produk”:“远程电视”
}
]
变量ID=[
“5acb747c9c2be225d995a8f1”,
“5acb747c9c2be225d995a8f2”
]
设res=data.filter(d=>ids.indexOf(d.\u id)=-1)
控制台日志(res)代码>您不会将找到的对象推送到结果集
函数过滤器(){
var结果=[],
id,dataTransaksi;
用于(id的id){
用于(数据的数据传输){
结果.推送(…dataTransaksi.transaksi.filter(transaksi=>{
返回transaksi.\u id==id
}));
}
}
返回结果;
}
var数据=[{transaksi:[{id:“5acb747c9c2be225d995a8f1”,sebelum_jumlah_sortir:1,harga_produk:50000,kirim:1,pembelian:“5acb747c9c2be225d995a8f9”},id:“5acb7a6a305ef72