如何过滤嵌套数组中内层values数组的间隔元素(D3.js开发)
过滤D3折线图内层values数组的间隔元素
你需要遍历外层的slices数组,对每个对象中的values子数组单独做过滤,而非过滤外层数组本身。可以通过以下两种方式实现:
方式一:生成新数组(不修改原数据)
使用map遍历slices,复制每个对象的原有属性(比如id),同时替换values为过滤后的数组:
const filteredSlices = slices.map(slice => ({ ...slice, values: slice.values.filter((d, i) => i % 3 === 1) }));
方式二:直接修改原数组
如果不需要保留原数据,可以用forEach直接更新每个对象的values属性:
slices.forEach(slice => { slice.values = slice.values.filter((d, i) => i % 3 === 1); });
以上代码中的i % 3 === 1会保留values数组中索引为1、4、7...的元素(每3个元素保留第2个,索引从0开始),你可以根据需求调整这个条件(比如要保留每3个里的第1个就改成i % 3 === 0)。
内容的提问来源于stack exchange,提问作者Mau
相关产品推荐
相关产品推荐

