检查项目是否存在于数组React中

汤姆·哈里森

我正在尝试检查数组中data是否存在某个项目,然后检查是否将其添加到数组中。

handleCheck如果数组中已经存在某个项目,则函数将返回true,但是我不确定如何使用它来防止将该项目添加到数组中。

我试图在handlePush函数中使用它,this.handleCheck(item) == false ?它应该检查它是否为假,如果是,然后进行推送,如果它返回true,则应该说它存在,但此刻不起作用,因为即使该项目存在,它也会推送到数组而且它永远也不会console.log'存在'

如何更改handlePush函数以使用handleCheck并防止再次添加数组中已经存在的项?

https://www.webpackbin.com/bins/-KpnhkEKCpjXU0XlNlVm

import React from 'react'
import styled from 'styled-components'
import update from 'immutability-helper'

const Wrap = styled.div`
  height: auto;
  background: papayawhip;
  width: 200px;
  margin-bottom:10px;
`

export default class Hello extends React.Component {
  constructor() {
    super()
    this.state = {
    data: []
    }

    this.handlePush = this.handlePush.bind(this)
    this.handleRemove = this.handleRemove.bind(this)
    this.handleCheck = this.handleCheck.bind(this)
  }

  handlePush(item) {

    this.handleCheck(item) == false ?
    this.setState({
    data: update(this.state.data, {
      $push: [
        item
      ]
    })
    })

   : 'console.log('exists')
  }

   handleRemove(index) {
    this.setState({
    data: update(this.state.data, {
      $splice: [
        [index,1]
      ]
    })
    })
  }

handleCheck(val) {
 return this.state.data.some(item => val === item.name);
}

  render() {
    return(
    <div>
        <button onClick={() => this.handlePush({name: 'item2'})}>push</button>
        <button onClick={() => this.handlePush({name: 'item3'})}>push item3</button>
        {this.state.data.length > 1 ? this.state.data.map(product => 
          <Wrap onClick={this.handleRemove}>{product.name}</Wrap>) : 'unable to map' } 
        {console.log(this.state.data)}
        {console.log(this.handleCheck('item2'))}
        {console.log(this.handleCheck('item3'))}
      </div>
    )

  }
}
诺尔

它应该是:

handleCheck(val) {
    return this.state.data.some(item => val.name === item.name);
}

因为val这是一个对象而不是字符串。

检查一下:https : //www.webpackbin.com/bins/-Kpo0Rk6Z8ysenWttr7q

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何检查项目是否存在于javascript数组中

检查项目是否存在于 R 的嵌套列表中

如何检查一个项目是否存在于多维度 numpy 数组中?

邮递员测试,以检查响应主体的每个项目是否都存在于数组中

检查元素是否存在于数组中

检查属性是否存在于数组中

如何检查元素是否存在于数组对象中

检查对象是否存在于数组中

如何检查给定的int是否存在于数组中?

Javascript:检查键是否存在于对象数组中

如何检查键是否存在于对象数组中

如何检查(Sub)Array是否存在于数组中

检查值是否存在于多维数组中

如何检查类的属性是否存在于数组中?

检查元素存在于数组中

检查元素存在于数组中

高效的方法来检查数组中的项目是否存在于另一个

在设置状态React JS之前检查对象数组是否存在于对象数组中的简便方法

如何在jquery / javascript中检查数组中的值是否存在于数组中

检查id是否存在于数组中并将项添加到数组中

如何检查数组1中每个值的顺序,是否存在于数组2中并删除?

如何检查数组键是否存在于php中的多维数组中

检查值是否存在于集合或数组中,如果不存在,则将其添加

检查字典中的项目是否存在于csv文件中

检查数组 1 的值是否存在于数组 2 的键中 - PHP

如何检查数组键是否存在于已定义的常量数组中[PHP 7 define()]

PHP - 检查数组是否存在于具有精确匹配对的多维数组中

检查来自后端数组的输入字段值是否存在于数组中

检查子字符串数组是否都存在于字符串数组中