首页 > 解决方案 > 数组映射不起作用后递减

问题描述

我有一个函数“Next”映射一个数组,如下例所示,在增加元素后我正在做某事,但我还有另一个函数“Prev”它几乎做了类似的映射,但在那个函数中,我正在递减元素。Next 功能可以正常工作,但 Prev 功能不能,有人可以帮我解决这个问题吗?

我正在映射一个对象数组

[
   {
      "id":"v82b3a65",
      "name":"Name"
   },
   {
      "id":"u0b26551",
      "name":"Name2"
   }
]

我的职能:

const Next = () => {
  array.items.map((item, key, element) => {
    var next = element[key ++];
    setId(next.id);
  });
};

const Prev = () => {
  array.items.map((item, key, element) => {
    var prev = element[key --];
    setId(prev.id);
  });
};

render(
<View>
<Button title={'Prev'} onPress={Prev}/>
<Button title={'Next'} onPress={Next}/>
</View>
)

我在按钮的 onPress 中使用这些功能

我需要的结果:在下一个按钮按下我希望它设置 setID = 下一个对象 id 并且在上一个按钮按下我想设置 setID = 上一个对象 id

标签: javascripttypescriptreact-native

解决方案


如果它在函数index中大于 0,您应该检查值。Prev还要检查它是否小于Next函数中的数组长度 - 1。

const Next = () => {
  var newArray = myArray.map(function (value, index, elements) {
    if (index < myArray.length - 1) {
      var next = elements[index + 1];
      // do something
    }
  });
};

const Prev = () => {
  var newArray = myArray.map(function (value, index, elements) {
    if (index > 0) {
      var next = elements[index - 1];
      // do something
    }
  });
};

推荐阅读