Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript中比较和获取匹配的字段?_Javascript - Fatal编程技术网

如何在Javascript中比较和获取匹配的字段?

如何在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", "

我在下面有json数据

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;
}, {});

控制台日志(结果)