2017-01-04 2 views
0

Ich habe ein Problem mit Array Reihenfolge Sequenz. Brauchen Sie Ihre Hilfe für das gewünschte Ergebnis.Problem mit benutzerdefinierten Array Reihenfolge Sequenz Javascript

var a = [0, 1, 2, 3, 4, 5, 6, 77, 7, 8, 9, 10, 11, 12, 35, 36, 43, 51, 72, 89, 95, 100]; 
 
var b = [6,5,7,8,0,800,46,1,2,3,12,47,100,95]; 
 
var c = []; 
 

 
for (var i = 0; i <= (a.length) - 1; i++) { 
 
    var res = b.indexOf(a[i]); 
 
    if (res > -1) { 
 
    \t c.push(a[i]); 
 
    } 
 
} 
 

 
document.write(c); 
 
// I need same sequence of array B in reponse 
 
// Desired Result 
 
// 6,5,7,8,0,1,2,3,12,100,95

+0

was ist das mit 'obj'? Sie könnten einfach tun, wie 'var c = b.filter (f => a.includes (f));' – Redu

+0

@Redu es wurde irrtümlich auf Frage –

Antwort

4

Iterate Array b anstelle von a:

var a = [0, 1, 2, 3, 4, 5, 6, 77, 7, 8, 9, 10, 11, 12, 35, 36, 43, 51, 72, 89, 95, 100]; 
 
var b = [6,5,7,8,0,800,46,1,2,3,12,47,100,95]; 
 
var c = []; 
 

 
for (var i = 0; i < b.length; i++) { 
 
    var res = a.indexOf(b[i]); 
 
    if (res > -1) { 
 
    c.push(b[i]); 
 
    } 
 
} 
 

 
console.log(c.join(','));

Eine funktionelle Lösung ist Array#filter auf B zu verwenden:

var a = [0, 1, 2, 3, 4, 5, 6, 77, 7, 8, 9, 10, 11, 12, 35, 36, 43, 51, 72, 89, 95, 100]; 
 
var b = [6,5,7,8,0,800,46,1,2,3,12,47,100,95]; 
 

 
var c = b.filter(function(n) { 
 
    return a.indexOf(n) !== -1; 
 
}); 
 

 
console.log(c.join(','));

+0

hinzugefügt Dank Sie sparen meinen Tag –

Verwandte Themen