2017-03-27 168 views
-3

嗨,我有兩個數組都取決於共同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

回答

0

你可以以後比較使用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);

1
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]) 
} 
}