Zunächst möchte ich darauf hinweisen, dass Ihr Array schlecht gemacht wurde . Sie haben eine linke eckige Klammer auf den ersten Eintrag fehlt („RMS MARY“.) Die korrigierte Array ist unter:
var fleet = [
["RMS MARY", 2000, 15],
["TITANIC 2", 10000, 13],
["Boaty McBoatface", 2000, 18],
["Jutlandia", 1945, 10],
["Hjejlen", 250, 8],
];
Zweitens würde ich empfehlen, dass Sie die Schiffe mit Objekten anstelle von Arrays darstellen, so dass Sie Würd etwas wie diese:
var fleet = {
{name: "RMS MARY", capacity: 2000, somethingElse: 15},
{name: "TITANIC 2", capacity: 10000, somethingElse: 13},
{name: "Boaty McBoatface", capacity: 2000, somethingElse: 18},
{name: "Jutlandia", capacity: 1945, somethingElse: 10},
{name: "Hjejlen", capacity: 250, somethingElse: 8},
};
Nun, wie für die gewünschte Funktion, ich zwei bieten werden, eine für die Original-Array-Darstellung von Schiffen, und einen für die Objektdarstellung:
//array representation
function filterByCapacity(fleet, capacity){
return fleet.filter(function(ship){
return ship[1] >= capacity;
});
}
//object representation
function filterByCapacity(fleet, capacity){
return fleet.filter(function(ship){
return ship.capacity >= capacity;
});
}
Hoffe das hilft.
Sogar Ihr "Flotten" -Array ist falsch aufgebaut. – choz