如何在Javascript中比较和获取匹配的字段?
我在下面有json数据如何在Javascript中比较和获取匹配的字段?,javascript,Javascript,我在下面有json数据 var dataA = { "state":"TX", "city":"Dallas", "code":"75201", "totalareas":"75201", "website":"asdf.ccom" } 我有一个对象数组 var dataB =[ { "key":"state", "value":"TX" }, { "key":"city", "
var dataA = {
"state":"TX",
"city":"Dallas",
"code":"75201",
"totalareas":"75201",
"website":"asdf.ccom"
}
我有一个对象数组
var dataB =[
{
"key":"state",
"value":"TX"
},
{
"key":"city",
"value":"Dallas"
},
{
"key":"yu",
"value":"2"
},
{
"key":"website",
"value":"asdf.ccom"
}
]
我想比较这个dataA和dataB,只得到与object匹配的字段。我该怎么做 我的期望结果
{
"city":"Dallas",
"state":"TX",
}
您可以使用
reduce
循环通过dataB
。使用object.entries
将每个对象转换为数组,并使用forEach
循环通过。如果密钥存在且值相同,则将密钥和值分配给累加器
var dataA={
“州”:“TX”,
“城市”:“达拉斯”,
“代码”:“75201”,
“总面积”:“75201”
}
变量数据=[{
“城市”:“达拉斯”,
“城市代码”:“,
“人口”:“234k”
}, {
“州”:“TX”,
“状态代码”:“asdf5678”
}, {
“zip”:“75201”,
“区域计数”:“567”
}]
var结果=数据减少((c,v)=>{
Object.entries(v.forEach)([i,o])=>{
如果(dataA[i]&&dataA[i]==o)c[i]=o;
})
返回c;
}, {});
控制台日志(结果)
您可以使用reduce
循环通过dataB
。使用object.entries
将每个对象转换为数组,并使用forEach
循环通过。如果密钥存在且值相同,则将密钥和值分配给累加器
var dataA={
“州”:“TX”,
“城市”:“达拉斯”,
“代码”:“75201”,
“总面积”:“75201”
}
变量数据=[{
“城市”:“达拉斯”,
“城市代码”:“,
“人口”:“234k”
}, {
“州”:“TX”,
“状态代码”:“asdf5678”
}, {
“zip”:“75201”,
“区域计数”:“567”
}]
var结果=数据减少((c,v)=>{
Object.entries(v.forEach)([i,o])=>{
如果(dataA[i]&&dataA[i]==o)c[i]=o;
})
返回c;
}, {});
控制台日志(结果)你的问题是什么?输出在第一个JSON中,对吗?您的问题中根本没有JSON。请阅读我想比较这个数据A和数据B,只得到匹配的字段。你的问题是什么?输出在第一个JSON中,对吗?您的问题中根本没有JSON。请阅读我想比较这个数据A和数据B,只得到匹配的字段Shai@Eddie你能帮我解决这个问题吗?我已经更改了数据B对象,现在我想comapre@realme您将其更改为?嘿,抱歉,数据如下:var dataA={“state”:“TX”,“city”:“Dallas”,“code”:“75201”,“totalareas”:“75201”,“website”:“asdf.ccom”}var dataB=[{“key”:“州”,“值”:“TX”},{“键”:“城市”,“值”:“达拉斯”},{“键”:“yu”,“值”:“2”},{“键”:“网站”,“值”:“asdf.ccom”}]见现在的情况,它们是这样变化的var DATA=[{“键”:“州”,“值”:“TX”},{“键”:“城市”,“值”:“达拉斯”},{“键”:“yu”,“值”:“2”},{“键”:“网站”,“值”:“asdf ccom”}]但是你更新的代码不起作用了,很乐意帮忙:)hai@Eddie你能帮我解决这个问题吗?我已经改变了数据对象,现在我想comapre@realme您将其更改为?嘿,抱歉,数据看起来像这个var dataA={“state”:“TX”,“city”:“Dallas”,“code”:“75201”,“totalareas”:“75201”,“website”:“asdf.ccom”}var dataB=[{“key”:“state”,“value”:“TX”},{“key”“:“city”,“value”:“Dallas”},{“key”:“yu”,“value”:“2”},{“key”:“website”,“value”:“asdf.ccom”}]现在可以看到这样的变化var-dataB=[{“key”:“state”,“value”:“TX”},{“key”:“yu”,“value”:“2”},{“key”:“website”,“value”:“asdf.ccom”}]但是你更新的代码不起作用了:)