首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将项返回到数组中

将项返回到数组中
EN

Stack Overflow用户
提问于 2016-01-29 02:51:36
回答 1查看 81关注 0票数 0

试图解决卷心菜、狼和山羊的问题。我的游戏计划是创建两个数组,一个代表河岸的左侧,另一个代表右侧。基本上,如果一个数组中的两个项目互相威胁,例如,如果左边的数组包含山羊和卷心菜,就不会允许其中一个把狼赶走。我已经设置了数组,但是当我调用函数返回项目(卷心菜、狼、山羊)时,它不会将它放回leftSide数组中。我正在使用splice()将项目添加回。这就是问题所在吗?以下是我想要做的事:

代码语言:javascript
复制
function returnCabbage(){
    $("#cabbage2").hide();
    $("#cabbage").show();
    leftBank.splice(0, 1, cabbage.name);
    rightBank.splice(0, 1);

    console.log(leftBank.length);

    console.log(cabbage.name + " on left bank: " +   isOnLeftBank(cabbage.name));
    console.log(cabbage.name + " on right bank: " + isOnRightBank(cabbage.name));
}

function sendCabbage(){
    $("#cabbage2").show();
    $("#cabbage").hide();
    leftBank.splice(0, 1);
    rightBank.splice(0, 1, cabbage.name);

    console.log(rightBank.length);

    console.log(cabbage.name + " on left bank: " + isOnLeftBank(cabbage.name));
    console.log(cabbage.name + " on right bank: " + isOnRightBank(cabbage.name));
}

这里还有更多的细节:https://jsfiddle.net/Amidi/m7vb3eoj/6/ (图像不会加载,页面的格式也很差)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-29 05:39:12

当连接到放置时,将替换数组中的一个元素。当您剪接删除时,您正在减少数组的长度。相反,您可以使用push将数组推送到数组上。问题是您的代码为每个元素设定了一个特定的位置。我推荐一种稍微不同的方法。下面是我推荐的更多内容。我把检查失败状态之类的留给你了。

代码语言:javascript
复制
/* true for left false for right */
var river = {
  cabbage: true,
  wolf: true,
  goat: true
}

function sendItem(name) {
  river[name] = !river[name];
  setState();
};

function setState() {
  Object.keys(river).forEach(function(k) {
    if (river[k] === true) {
      $('.left .' + k).show();
      $('.right .' + k).hide();
    } else {
      $('.left .' + k).hide();
      $('.right .' + k).show();
    }
  });
}

setState();
代码语言:javascript
复制
.river,
.btn-group {
  display: flex;
  margin-left: auto;
  margin-right: auto;
  width: 50%;
  flex-flow: row;
  justify-content: space-between;
}
.left,
.right {
  display: flex;
  flex-flow: column;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="river">
  <div class="left">
    <div class="cabbage">Cabbage</div>
    <div class="wolf">Wolf</div>
    <div class="goat">Goat</div>
  </div>

  <div class="right">
    <div class="cabbage">Cabbage</div>
    <div class="wolf">Wolf</div>
    <div class="goat">Goat</div>
  </div>
</div>
<div class="btn-group">
  <button type="button" onclick="sendItem('cabbage')">Send Cabbage</button>
  <button type="button" onclick="sendItem('wolf')">Send Wolf</button>
  <button type="button" onclick="sendItem('goat')">Send Goat</button>
</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35076053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档