Rau*_*ath 2 javascript arrays ecmascript-6 react-native
我正在尝试在React本机上做一些坐标平面功能。但是我有一个问题,我不知道如何获取数组中的下一个元素。
这是我的数组:
[
{"M":["0","0"]},
{"H":"100"},
{"V":"0"},
{"H":"100"},
{"V":"100"},
{"H":"0"},
{"V":"100"},
{"H":"0"},
{"V":"0"},
]
Run Code Online (Sandbox Code Playgroud)
这是我的功能:
const rotate = (pathArray, angle) =>{
if (angle > 0){
let vCordinate;
return pathArray.map((cordinate)=>{
if(Object.entries(cordinate)[0][0] == "M"){
let mCordinate = Object.entries(cordinate)[0][1];
mCordinate[0] = (parseInt(mCordinate[0]) * Math.cos(angle)) - (parseInt(mCordinate[1]) * Math.sin(angle));
mCordinate[1] = (parseInt(mCordinate[1]) * Math.cos(angle)) + (parseInt(mCordinate[0]) * Math.sin(angle));
return {[Object.entries(cordinate)[0][0]]: mCordinate};
}
//LOGIC TO GET NEXT ELEMENT
if(Object.entries(cordinate)[0][0] == "H"){
let hCordinate = Object.entries(cordinate)[0][1];
vCordinate = Object.entries(cordinate)[0][1]
return {[Object.entries(cordinate)[0][0]]: vCordinate};
}
if(Object.entries(cordinate)[0][0] == "V"){
return {[Object.entries(cordinate)[0][0]]: vCordinate};
}
})
}
return pathArray;
}
Run Code Online (Sandbox Code Playgroud)
在这一点上,当我点击“ H”时,我需要获取下一个元素。
这该怎么做?
map
方法的回调接受3个参数:
map
被调用。因此,您可以使用index获得下一个元素值:
var newArray = myArray.map(function(value, index, elements) {
var next = elements[index+1];
// do something
});
Run Code Online (Sandbox Code Playgroud)
要么
var newArray = myArray.map(function(value, index) {
var next = myArray[index+1];
// do something
});
Run Code Online (Sandbox Code Playgroud)
注意,next
变量的值可能是undefined
。如有必要,测试变量以防止错误。
归档时间: |
|
查看次数: |
2906 次 |
最近记录: |