在状态react js中存储和更新关联数组

时间:2019-02-27 19:11:28

标签: javascript arrays reactjs

在键已存在的情况下如何更新我的关联数组,否则我想创建一个新键并将该数组存储在状态中。我曾试图在关联数组中存储一个值。 当我在输入字段中输入数据时,可以调用handleChange,之后我要在上面提到的操作中进行操作

    import React, { Component } from 'react';

        class App extends Component {
            constructor(props) {
                super(props);
                this.onChangeEvent = this.onChangeEvent.bind(this);
                this.onChangeCount = this.onChangeCount.bind(this);
                this.onSubmit = this.onSubmit.bind(this);
                this.state = {
                    name: [],
                    inputCount:5
                }
            }
// associtive array
        handleChange = (e) => {
// I want to check the key is already exist or not if exist means create update the value else create a new key and also I want to validate all the data.
                    const check = e.target.name
                    const value = e.target.value
                    const name = []
                    name[check] = value
                    console.log(name)
                    this.setState({
                        name,
                    })
            }
        render() {
                let options = []
                for (let i = 0; i < this.state.inputCount; i += 1) { options.push(i); }
            return (
{this.state.inputCount && (
                        options1.map((i) => {
                            return (<div key={i}>
                                <input  onChange={this.handleChange} type="text" className="name" name={`name${i}`} placeholder="Name" /><br />
                            </div>)
                        })
                    )}
        );
            }
        }
        export default App;

1 个答案:

答案 0 :(得分:0)

首先,尽管有对象,但JavaScript中没有“关联数组”,基本上是相同的。因此,马上就应该将name的初始化更改为{}而不是[]

要检查对象中是否存在键,只需执行check in obj甚至是name.hasOwnProperty(check),其中check是要检查的键。

在JavaScript中,无论键是否存在,都以相同的方式设置和更新值:name[check] = value