例如:
var array2 = [{"A":1},{"B":2},{"C":3},{"D":4},...];
如何获取指定范围数据(如11~20个数据(?
看来你正在寻找这个:
var array2 = [{"A":1},{"B":2},{"C":3},{"D":4},{"E":5},{"F":6},{"G":7},{"H":8},{"I":9},{"J":10},{"K":11},{"L":12},{"M":13},{"N":14},{"O":15},{"P":16},{"Q":17},{"R":18},{"S":19},{"T":20},{"U": 21}];
var rangeMin = 11;
var rangeMax = 20;
var result = array2.filter((item) => item[Object.keys(item)[0]] >= rangeMin && item[Object.keys(item)[0]] <= rangeMax);
console.log(result);
如果你的数组总是按升序排列,每个对象增加一个,你可以使用.slice()
,它将为您提供从起始索引到结束索引的数组的一部分:
const arr = [{"A":1},{"B":2},{"C":3},{"D":4},{"E":5}];
const getValuesInRange = (arr, x, y) =>
arr.slice(x-1, y);
console.log(getValuesInRange(arr, 2, 4));
或者,可以使用Object.values()
从每个对象获取数值,并将其与.filter
一起使用,以仅保留数值在给定范围之间的对象:
const arr = [{"A":1},{"B":2},{"C":3},{"D":4},{"E":5}];
const getValuesInRange = (arr, x, y) =>
arr.filter(obj => {
const n = Object.values(obj).pop();
return x <= n && n <= y;
});
console.log(getValuesInRange(arr, 2, 4));