【问题标题】:How to remove a number of same positve and negative from array如何从数组中删除多个相同的正数和负数
【发布时间】:2022-11-24 19:04:01
【问题描述】:

我正在使用 useState 挂钩,当我单击输入值按钮时,它更新了我的状态并在数组中添加了新元素。我想在这里实现这个,当我点击相同的正数和负数的相同值时,应该从数组中删除相同的数字 例如,当我点击一个按钮并添加元素时,如果我添加 3 并且在 -3 之后,两个数字都应该从数组中删除,如示例所示

[-3, 1, 2, 3, 4] = [1, 2, 4]

帮我解决这个问题

import "./styles.css";
import { useState } from "react";

export default function App() {
  const [data, setData] = useState([]);

  const [number, setNumber] = useState("");

  const onDataSubmit = (event) => {
    event.preventDefault();
    setData([...data, number]);
  };

  return (
    <div className="app">
      <div className="container">
        <div className="container1">
          <div className="input">
            <input
              id="title"
              type="number"
              value={number}
              onChange={(event) =>                      
                  setNumber(event.target.value)}
              name="title"
              placeholder="Title"
            />
          </div>
          <div>
            <button className="btn" onClick={onDataSubmit}>
              Submit
            </button>
          </div>
        </div>

        <div className="container2">{data.sort((a, b) => a - b)}</div>
      </div>
    </div>
  );
}

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

    尝试这个

    let array=[-3, 1, 2, 3, 4]
    
    let newData= array.filter(n=>!array.includes(MATH.abs(n)))
    

    【讨论】:

      【解决方案2】:
      setData(prev => 
        prev.reduce((val, item) => {
          if (item + number !== 0) {
            val.push(item);
          } else {
            val.splice(0, 1);
          }
          return val;
        }, [number])
      );
      

      【讨论】:

        猜你喜欢
        • 2022-12-06
        • 2012-08-02
        • 2012-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多