关于JavaScript数据处理的问题



例如:

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));

最新更新