needanothercoder 2024-09-24 20:14 采纳率: 42.9%
浏览 2
已采纳

微信小程序判断相等问题

如下代码,当我在blank中输入文本的时候,我希望只有当我输入的内容和左边meaning显示的内容一模一样才显示“完全相同!”。现在的毛病是,无论我输入什么,都会显示“完全相同!”。请指正。


// index.js
const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'
Page({
  data: {
    isShowUserName: false,
    userInfo:null,
    textInputValue:"",
    openid:"",

    wordlist: [
      { word: 'apple', meaning: '苹果',blank:'' },
      { word: 'banana', meaning: '香蕉',blank:'' },
      { word: 'take care of', meaning: '照顾',blank: ''},
    ]
  },
  updateName: function(e) {
    let index = e.currentTarget.dataset.index; // 假设你在wxml中通过data-index绑定了数组的索引
    let newValue = e.detail.value; // e.detail.value是用户在input中输入的新值
    // 使用ES6的模板字符串来动态更新数组中的值
    this.setData({
      [`wordlist[${index}].blank`]: newValue // 这将更新指定索引位置的对象的name属性
    });
    if([`wordlist[${index}].blank`].value===[`wordlist[${index}].meaning`].value)
    {
      console.log("完全相同!");
    }
  }
})

//index.wxml
<view wx:for="{{wordlist}}" wx:key="index">
  <view class="myRow">
    <text class="myWord">{{item.word}}</text>  <text class="myMeaning">{{item.meaning}}</text>  <input class="myBlank" data-index="{{index}}" bindinput="updateName" value="{{item.blank}}"/>
  </view>
</view>

img

  • 写回答

1条回答 默认 最新

  • 一轮明月照丘壑 2024-09-24 20:15
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    在你的代码中,你正在试图比较两个对象的值,但是你在比较的时候使用了错误的语法。你应该直接比较对象的属性,而不是整个对象。在你的代码中,你应该直接比较 wordlist[index].blankwordlist[index].meaning 的值,而不是试图通过字符串模板将它们变成对象再进行比较。正确的代码应该是这样的:

    updateName: function(e) {
      let index = e.currentTarget.dataset.index; // 获取当前点击的输入框的索引
      let newValue = e.detail.value; // 获取输入框的新值
      // 更新数据中的空白字段值
      this.setData({
        [`wordlist[${index}].blank`]: newValue
      });
      // 判断输入框的值和对应的meaning是否相同
      if (this.data.wordlist[index].blank === this.data.wordlist[index].meaning) {
        console.log("完全相同!");
      }
    }
    

    在上述代码中,我们直接在 if 语句中使用了 this.data.wordlist[index].blankthis.data.wordlist[index].meaning 来获取并比较这两个值,而不需要使用字符串模板来引用它们。这样就可以正确地比较输入框的值和对应的 meaning 是否相同了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 9月24日
  • 创建了问题 9月24日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?