2016-11-04 6 views
3

私は2組の配列を持っています。一つはいくつかの果物の価値を含み、もう一つはいくつかの乱数を含みます。ここでは、配列はフルーツ配列のインデックスであると考えています。だから、特定のインデックス配列からフルーツ配列値をスライスする方法は?サンプルコードjavascriptの配列から特定の配列のインデックス値を取得するには?

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

出力、

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

答えて

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

使用.map

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

あなたはfor..ofループを使用することができます

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

アレイ#マップ作品(documentation

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

あなたは(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)); 
}; 

あるいはまた、アレイすぎアレイ#フィルタを使用することができます。#(documentation

const getFromIndex = (array, indexes) => { 
    return indexes.reduce((result, i) => result.concat(array[i]), []); 
}; 
を減らします
5

もしuがlodashで、_.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>

関連する問題