2016-11-04 303 views
3

我有两组数组。一个是包含一些水果价值,另一个是有一些随机数。在这里我认为数字数组是水果数组的索引。那么,如何从特定索引数组中切出水果数组值?如何从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

如果哟ü要实现与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>

相关问题