[英]lower each array-element of an array by a given value
我需要從每個數組中減去多個對象的固定值。 在此示例中,您可以看到一些坐標作為數組。 現在,第一個值應減去10,第二個值應減去20。
var x = 10;
var y = 20;
var data = {
"imagePoints": [{
"id": "BTLS5YAJHbA5QWqRP",
"coordinates": [ 534, 242 ],
"content": "something"
}, {
"id": "yXCFyWaZMbpi8EczY",
"coordinates": [ 398, 176 ],
"content": "anything"
}, {
"id": "qJz9oMNfc8BmhMmEg",
"coordinates": [ 272, 230 ]
}]
}
結果將是第一點[524,222]
。 我該怎么做,因為在將值返回到數據變量中時遇到問題:
data.forEach(function(point) {
point.coordinates[0] - x;
point.coordinates[1] - y;
}
我已經用地圖實現了
var x = 10;
var y = 20;
var arr = [x, y];
data.imagePoints.map(function (item) {
item.coordinates = item.coordinates.map(function (coordinate, index) {
return (coordinate - arr[index]) < 0 ? 0 : (coordinate - arr[index]);
});
return item;
});
console.log(data);
這很簡單:您只需要1)遵循數據源的實際結構,以及2)重新分配值即可:
data.imagePoints.forEach(function(point) {
point.coordinates[0] -= x;
point.coordinates[1] -= y;
});
如果還要考慮限制,則必須使用簡單的分配而不是復合分配:
data.imagePoints.forEach(function(point) {
point.coordinates[0] = Math.max(point.coordinates[0] - x, 0);
point.coordinates[1] = Math.max(point.coordinates[1] - y, 0);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.