如何获取 Map 函数的下一个元素?

Posted

技术标签:

【中文标题】如何获取 Map 函数的下一个元素?【英文标题】:How to get the next element on Map function? 【发布时间】:2018-09-02 21:40:38 【问题描述】:

我正在尝试在 React native 上制作一些坐标平面功能。但是我遇到了一个问题,我不知道如何获取数组中的下一个元素。

这是我的数组:

[
"M":["0","0"],
"H":"100",
"V":"0",
"H":"100",
"V":"100",
"H":"0",
"V":"100",
"H":"0",
"V":"0",
]

这是我的功能:

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;

在这一点上,当我点击“H”时,我需要获取下一个元素。

如何做到这一点?

【问题讨论】:

Possible duplicate. 使用map函数的第二个参数表示索引,当你找到'H'然后访问index+1 When mapping through an array check next item property的可能重复 【参考方案1】:

map 方法的回调接受 3 个参数:

当前项目值; 当前项目索引; 数组map 被调用。

因此,您可以使用索引来获取下一个元素值:

var newArray  = myArray.map(function(value, index, elements) 
  var next = elements[index+1];
  // do something
);

var newArray  = myArray.map(function(value, index) 
  var next = myArray[index+1];
  // do something
);

注意,next 变量的值可能是undefined。如果需要,测试变量以防止错误。

【讨论】:

以上是关于如何获取 Map 函数的下一个元素?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取在jquery中可见的下一个元素

如何利用JavaScript语言获取Map集合中元素个数

如何获取使用 .map 呈现的第一个元素的 ref?

如何获取具有特定 ID 的 div 中的下一个元素

如何在 django 模板中获取 for 循环内的列表的下一个元素?

如何使用 YDN-DB 在 keypath 之后获取下一个元素