设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1816|回复: 4
打印 上一主题 下一主题

[已经解决] 【1,2,3,2,3】里面只减一个2怎么做

[复制链接]

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

跳转到指定楼层
1
发表于 2015-12-16 12:50:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
        @items.push($data_items[item_id])
      elsif item_id >0 and n==false
        @items.delete($data_items[item_id])
脚本里面原本是这样写的。
不过这样写那个delete会把所有相同的都减掉。不能一个一个减。
        @items.delete_at($data_items[item_id])
改成at后就TYPRERROR

评分

参与人数 1星屑 +35 收起 理由
RyanBern + 35 手动认可奖励

查看全部评分

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2015-12-16 13:00:16 | 只看该作者
@items.delete_at(@items.index $data_items[item_id])

点评

可以了,谢谢。试了好几次,原来是大神少打了个S。太感谢了,这样我的BUG就修复了  发表于 2015-12-16 20:20
index = @items.index $data_items[item_id]; @item.delete_at index if index  发表于 2015-12-16 13:39
说明原本就不存在  发表于 2015-12-16 13:32
no implicit conversion from nil to integer  发表于 2015-12-16 13:14

评分

参与人数 1星屑 +150 收起 理由
RyanBern + 150 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
451
在线时间
228 小时
注册时间
2015-2-23
帖子
241
3
发表于 2015-12-16 13:32:49 | 只看该作者
只减去第一个
  1. data = [1,2,3,2,3]
  2. data.each do |i|
  3.   if i == 2
  4.     data.delete(i)
  5.     break
  6.   end
  7. end
复制代码

点评

这还真没试过。  发表于 2015-12-16 13:40
这和直接delete有何区别?delete就是删除满足要求的全部元素。和你遍历与否没有关系。  发表于 2015-12-16 13:37
制作XP特效,找我。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

4
发表于 2015-12-16 14:52:29 | 只看该作者
本帖最后由 cinderelmini 于 2015-12-16 15:25 编辑

虽然在另一边的帖子答过了…………
  1. [1,2,3,2,3].each do |a|
  2.   if a == 2
  3.     a = "2"
  4.     break
  5.   end
  6. end
  7. Array.delete("2")
复制代码
好像不用nil会比较好?

另一个办法比较直接……
  1. [1,2,3,2,3].delete_at([1,2,3,2,3].index(2))
复制代码

点评

第一个解决办法略奇葩。第二个需要考虑数组中不含2的问题。  发表于 2015-12-16 22:33

评分

参与人数 1星屑 +150 收起 理由
RyanBern + 150 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21666
在线时间
9418 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

5
发表于 2015-12-16 16:04:07 | 只看该作者
纯属娱乐
是时候展示我神经病的一面了
  1. a = [1,2,3,2,2,3]
  2. a = a.join(' ')
  3. a.slice!(/2/)
  4. a = eval "%w[ #{a} ]"
复制代码

评分

参与人数 1星屑 +90 收起 理由
RyanBern + 90 你这个我只能给90糖233

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-23 04:04

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表