如何获取数组
2020-01-10
64
我有一个对象数组。每个对象都有一个 leftpixel 键。我想要实现的是获取一个数组,即 newArray,其元素通过将数组中第一个对象的 leftpixel 键值减去第二个 leftpixel 键值而得出,这将构成 newArray 的第一个元素,第二个元素将通过将数组中第二个对象的 leftpixel 键值减去第三个 leftpixel 键值而获得。
我拥有的数组是这样的
[
{
A: "FSDF"
B: "$145.0"
leftpixel: 2
},
{
A: "DFH"
B: "$463.0"
leftpixel: 191
},
{
A: "FDH"
B: "$546.0"
leftpixel: 191
},
{
A: "DSG"
B: "$154.0"
leftpixel: 192
}
]
我想要的新数组应该是这样的
newArray = [189, 0, 1]
2个回答
您可以对数组进行切片,并获取切片数组项与同一索引处的原始数组的增量
var data = [{ A: "FSDF", B: "$145.0", leftpixel: 2 }, { A: "DFH", B: "$463.0", leftpixel: 191 }, { A: "FDH", B: "$546.0", leftpixel: 191 }, { A: "DSG", B: "$154.0", leftpixel: 192 }],
deltas = data.slice(1).map((v, i) => v.leftpixel - data[i].leftpixel);
console.log(deltas);
Nina Scholz
2020-01-10
这是一个略显冗长的实现,其中还包括第一个可以稍后切片/过滤掉的值。
let data = [{
A: "FSDF",
B: "$145.0",
leftpixel: 2
},
{
A: "DFH",
B: "$463.0",
leftpixel: 191
},
{
A: "FDH",
B: "$546.0",
leftpixel: 191
},
{
A: "DSG",
B: "$154.0",
leftpixel: 192
}
]
let result = data.map((item, index, arr) => {
if (index === 0) {
return item.leftpixel;
}
return item.leftpixel - arr[index - 1].leftpixel
})
console.log(result.slice(1))
Nick
2020-01-10