如何比较两个数组对象

问题描述:

嗨,我有两个数组都取决于共同fq_id如何比较两个数组对象

var array1 =[ 
    {"description":" Virat Kohli","fq_id":156},{"description":" Lokesh Rahul","fq_id":156},{"description":"Chateshwar Pujara","fq_id":156},{"description":"Ajinke Rahane","fq_id":156}] 

var array2 = [ 
    {"ans_description":"who is better?","fq_id":156}] 

匹配fq_id

结果数组应该如下

result = [{ 
description:who is better?, 
options:["Virat Kohli","Lokesh Rahul","Chateshwar Pujara","Rahane"] 
}] 
+1

你有什么尝试? – Rajesh

+0

突出显示该命令+ k缩进您的代码 – 2017-03-27 12:54:45

+4

问题是什么? _“结果数组应该如下”_你是要求我们做你的工作吗? – evolutionxbox

你可以以后比较使用Array#mapArray#filter作为具有过滤项目的新对象。

简易型

var array1 = [{ description: "Virat Kohli", fq_id: 156 }, { description: "Lokesh Rahul", fq_id: 156 }, { description: "Chateshwar Pujara", fq_id: 156 }, { description: "Ajinke Rahane", fq_id: 156 }], 
 
    array2 = [{ ans_description: "who is better?", fq_id: 156 }], 
 
    result = array2.map(a => ({ 
 
     description: a.ans_description, 
 
     options: array1.filter(b => a.fq_id === b.fq_id).map(a => a.description) 
 
    })); 
 

 
console.log(result);

版本与Map

var array1 = [{ description: "Virat Kohli", fq_id: 156 }, { description: "Lokesh Rahul", fq_id: 156 }, { description: "Chateshwar Pujara", fq_id: 156 }, { description: "Ajinke Rahane", fq_id: 156 }], 
 
    array2 = [{ ans_description: "who is better?", fq_id: 156 }], 
 
    map = new Map, 
 
    result = array2.map(a => map.set(a.fq_id, { 
 
     description: a.ans_description, 
 
     options: [] 
 
    }).get(a.fq_id)); 
 

 
array1.forEach(a => map.has(a.fq_id) && map.get(a.fq_id).options.push(a.description)); 
 

 
console.log(result);

var array1 =[ 
    {"description":" Virat Kohli","fq_id":156},{"description":" Lokesh Rahul","fq_id":146},{"description":"Chateshwar Pujara","fq_id":157},{"description":"Ajinke Rahane","fq_id":156}] 

var array2 = [ 
    {"ans_description":"who is better?","fq_id":156}] 

var result = [{'description':array2[0].ans_description, 'options':[]}] 

for(var i = 0; i<array1.length; i++) { 
if(array1[i].fq_id === array2[0].fq_id){ 
    result[0].options.push([array1[i].description]) 
} 
}