Javascript 比较两个对象的值和键
我有两个目标:Javascript 比较两个对象的值和键,javascript,Javascript,我有两个目标: Obj1={ 0:“AS1”, 1:“AS2”, 2:“AS3” } Obj2={ AS1:“哈尼语” AS2:“乔” } 我想将Obj1的值与Obj2的键进行比较,然后打印Obj2值。我不确定您想要实现什么,但您可以像这样访问所需的值: 让Obj1values=Object.values(Obj1) console.log(Obj1values) 让Obj2Keys=Object.keys(Obj2) console.log(Obj2Keys)您可以获取一个值为obj1的数组
Obj1={
0:“AS1”,
1:“AS2”,
2:“AS3”
}
Obj2={
AS1:“哈尼语”
AS2:“乔”
}
我想将
Obj1
的值与Obj2
的键进行比较,然后打印Obj2
值。我不确定您想要实现什么,但您可以像这样访问所需的值:
让Obj1values=Object.values(Obj1)代码>
console.log(Obj1values)
让Obj2Keys=Object.keys(Obj2)代码>
console.log(Obj2Keys)
您可以获取一个值为obj1
的数组,并对obj2
的键进行迭代
var obj1={0:AS1',1:AS2',2:AS3},
obj2={AS1:“哈尼”,AS2:“乔”},
结果=Object.assign([],obj1).map(在obj2中k=>k?obj2[k]:null);
控制台日志(结果)代码>这本质上等同于Excel的VLOOKUP函数(无精确匹配选项)
按当前用户
的值搜索源对象,并返回名称
值。因为这是一个标量值,所以不需要字段/索引
const lookup=(值、源、字段)=>{
返回((匹配)=>{
返回match&&field?match[field]:match | | null;
})(来源[价值]);
}
让用户={
0:“AS1”,
1:“AS2”,
2:“AS3”
}
让名称={
AS1:“哈尼”,
AS2:“乔”
}
console.log(Object.keys(Users.map)(id=>{
返回查找(用户[id],名称);
}));代码>
作为控制台包装{top:0;最大高度:100%!important;}
这是否回答了您的问题?什么是比较?@NinaScholz我有表,我想打印Obj2中的所有值取决于Obj1中的键这就像Excel中的VLookup。很好地使用对象。分配+1如何返回Obj1中的所有值以及Obj2中的名称(返回)请,在上面的示例中,我应该返回3个值Hani,Joe,Null什么是返回?对于未定义的
属性,是否需要一个带有null
的值数组?虽然此代码可能会解决此问题,但一个好的答案还应该解释它的作用以及它的帮助方式。
let ob1 = {0: "AS1", 1: "AS2", 2: "AS3" }
let ob2 = {AS1: "Hani", AS2: "Joe" }
let ob1Vals = Object.values(ob1)
let ob2Keys = Object.keys(ob2)
console.log(ob1Vals, ob2Keys)
ob2Keys.forEach(e => {
if(ob1Vals.includes(e)) {
console.log(ob2[e])
}
})