javascript - 数组映射不起作用后递减
问题描述
我有一个函数“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
解决方案
如果它在函数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
}
});
};
推荐阅读
- javascript - 使用javascript从日期时间中提取日期和时间
- evaluation - 模型的 Blue 分数与 Baseline Bleu 分数之间的差异
- php - 如何安全地将 MySQL 数据库与使用 PHP 的网页链接和使用?
- amazon-web-services - 如何使用指标过滤器从 CloudFormation 日志中解析 int
- php - 如何在mysql中将默认值从一个表插入到另一个表
- excel - 考虑到 Excel VBA 中的前导零,如何计算完全匹配
- javascript - 使用moment js在vue js中所有月份的工作日
- jasperserver - Jasper 服务器在编辑大域时注销
- python - 根据 Python 列表中的值返回一个字符串值
- algorithm - 网格 N*M 上有多少个矩形恰好包含 k 个矩形