gpt4 book ai didi

javascript - 如果单击了某个项目(并且之前已经将其添加到数组中),如何从数组中删除该项目?

转载 作者:行者123 更新时间:2023-11-30 13:51:47 24 4
gpt4 key购买 nike

如果一个项目被点击(并且它之前已经被添加到一个数组中),你如何从数组中删除它?

我有一个 Framer X (React) 原型(prototype),它从 API 中提取足球博彩信息,如下所示:

const API = "https://api.myjson.com/bins/i461t"

// [1]
export const data = Data({
matches: [],
chosenBets: [],
})

// [2]
const fetchData = async (endpoint, callback) => {
const response = await fetch(endpoint)
const json = await response.json()
data.matches = json
}

每场比赛都有与之相关的赔率:主队和客队以及平局:

enter image description here

当用户选择赔率时,它会突出显示并添加到 chosenBets 数组中:

export function PopulateMatches(): Override {
return {
matches: data.matches,
onClick(obj, index) {
data.chosenBets.splice(index, 1, obj)
console.log(data.chosenBets, "data.chosenBets")
},
}
}

enter image description here

当我再次点击相同的赔率时,它被取消选择(红色背景从按钮中移除但数据对象 chosenBets 没有)

enter image description here

如何从 chosenBets 数据对象中删除项目?

代码可以在这里查看:https://github.com/A7DC/FramerXTEST1

编辑:完整代码

import * as React from "react"
import { Data, Override, Stack, Frame } from "framer"
import { MatchCard } from "./canvas"

//// Pulling down mathches

const API = "https://api.myjson.com/bins/i461t"

// [1]
export const data = Data({
matches: [],
chosenBets: [],
})

// [2]
const fetchData = async (endpoint, callback) => {
const response = await fetch(endpoint)
const json = await response.json()
data.matches = json
}

// App.tsx
export function PopulateMatches(): Override {
return {
matches: data.matches,
onClick(obj, index) {
data.chosenBets.splice(index, 1, obj)
console.log(data.chosenBets, "data.chosenBets")
},
}
}

// [4]
fetchData(API, {})

最佳答案

Array.splice()也可用于从数组中删除元素。

data.chosenBets.splice(index, 1); // Deletes the element at specified index.

此外,添加到 chosenBets 数组看起来是错误的。添加时第二个参数应为 0

data.chosenBets.splice(index, 0, obj); // Adds the element at specified index.

onClick() 函数看起来像

onClick(obj, index) {
if (data.chosenBets[index]) {
// Remove object.
data.chosenBets.splice(index, 1);
} else {
// Add object.
data.chosenBets.splice(index, 0, obj);
}
}

关于javascript - 如果单击了某个项目(并且之前已经将其添加到数组中),如何从数组中删除该项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58099213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com