2016-11-04 1 views
3

Ich habe zwei Sätze von Arrays. Einer enthält den Wert einiger Früchte, ein anderer die Zufallszahlen. Hier betrachtete ich die Anzahl Arrays sind die Indizes der Früchte-Array. Also, wie Früchte Array-Werte aus bestimmten Index-Array schneiden?Wie erhalten Sie bestimmte Array von Indizes Wert aus Array in Javascript?

Beispielcode,

var resultArr = [] 
var fruitier = ['apple', 'orange', 'grapes', 'pineapple', 'fig', 'banana', 'jackfruit', 'pomegranate']; 
var indexArr = [0, 2, 4]; 

Ausgang,

resultArr = ['apple', 'grapes', 'fig'] 

Antwort

4
for(var i = 0; i < indexArr.length; i++) 
    resultArr.push(fruitier[indexArr[i]]); 
5

Verwendung .map:

var resultArr = indexArr.map(i => fruitier[i]) 
1

Sie for..of Schleife verwenden können

for (var key of indexArr) resultArr[resultArr.length] = fruitier[key]; 
0

Array # map Werke (documentation)

const getFromIndex = (array, indexes) => indexes.map((index) => array[index]); 

Sie Array # Filter verwenden (documentation)

const fruitier = ['apple', 'orange', 'grapes', 'pineapple', 'fig', 'banana', 'jackfruit', 'pomegranate']; 
const indexArr = [0, 2, 4]; 

const getFromIndex = (array, indexes) => { 
    return array.filter((element, index) => indexes.includes(index)); 
}; 

Oder auch Array # reduzieren (documentation)

const getFromIndex = (array, indexes) => { 
    return indexes.reduce((result, i) => result.concat(array[i]), []); 
}; 
5

Wenn yo u wollen erreichen, dass mit lodash verwenden _.at():

var fruitier = ['apple', 'orange', 'grapes', 'pineapple', 'fig', 'banana', 'jackfruit', 'pomegranate']; 
 
var indexArr = [0, 2, 4]; 
 
var resultArr = _.at(fruitier, indexArr); 
 

 
console.log(resultArr);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.16.6/lodash.min.js"></script>

Verwandte Themen