提问人:Antonio Pavicevac-Ortiz 提问时间:6/5/2022 最后编辑:Antonio Pavicevac-Ortiz 更新时间:6/5/2022 访问量:139
如何为数组中的每个索引执行函数?
How to execute a function for every index in an array?
问:
我有一个函数(目前)由于闭包,它将记住它在函数调用中返回的最后一个索引(来自数组),并从下一个索引返回下一个值。
function getCurrentValue(values) {
let index = -1;
let l = values.length;
function increment() {
++index;
if (index < l) {
return values[index];
} else {
index = -1;
++index;
return values[index];
}
}
return increment;
}
我正在做的是将一个圆的度数组传递到函数中:
let degree = getCurrentValue([0, 315, 270, 225, 180, 135, 90];
degree() // returns 0
degree() // returns 315
我想要的是传入另一个数组,这是一个米的距离范围:
distances = [75, 175, 275, 375, 475];
我想要的是当我们返回时将每个距离应用于每个度数时要递增的当前度数值。
let degree = getCurrentValue([0, 315, 270, 225, 180, 135, 90], [75, 175]);
所以学位应该表现得像:
degree(); // returns 0;
degree(); // returns 0;
degree(); // returns 0;
degree(); // returns 315;
degree(); // returns 315;
degree(); // returns 315;
我试过了:
function getCurrentValue(values, helper) {
let index = -1;
let l = values.length;
var temp;
function increment() {
++index;
if (index < l) {
return values[index]
} else {
index = -1;
++index;
return values[index]
}
}
if (typeof helper != 'undefined') {
for (let i = 0; i < helper.length; i++) {
console.log('temp', temp)
return temp = values[index];
}
}
return increment;
}
但这没有用。任何帮助将不胜感激!
更新了解这最终会做什么的上下文可能会有所帮助:
我有标记,我想从中心向外添加到地图上的圆圈中。你的标记应该沿着我选择的度数放置:
function setMarkerToCenterOfSegment(lat, lng, degree, distance) {
return GeometryUtil.destination(L.latLng(lat, lng), degree(), distance());
}
let degree = getCurrentValue([0, 315, 270, 225, 180, 135, 90], [75, 175, 275, 375, 475]);
let distance = getCurrentValue([75, 175, 275, 375, 475])
{markers.length && markers.map((marker, index) => {
return
<Marker
key={index}
position={setMarkerToCenterOfSegment(...initRadiusForCircle, degree, distance)} />
}
)}
答: 暂无答案
评论
degree
degree
distance
index
markers.map
degree
distance