[英]How to update values of each object in the array of objects in Javascript?
[英]How to update values of every object in an array of objects in Javascript?
我正在尝试使用newData中的值更新数组(数据)中所有对象中的car值,我的代码是:
import "./styles.css";
const data = [
{ id: 1, car: "Toyota 2020", owner: "BM" },
{ id: 2, car: "Nissan", owner: "DK" },
{ id: 3, car: "Mazda", owner: "JA" },
{ id: 4, car: "Ford", owner: "DS" }
];
const newData = ["Audi", "Bentley", "BMW", "Buick"];
export default function App() {
return (
<div className="App">
{data?.map((item) => {
return <li key={item.id}>{item.car}</li>;
})}
</div>
);
}
我不知道如何使用 newData 中的值更改数据中的汽车值,因此数据将如下所示:
const data = [
{ id: 1, car: "Audi", owner: "BM" },
{ id: 2, car: "Bentley", owner: "DK" },
{ id: 3, car: "BMW", owner: "JA" },
{ id: 4, car: "Buick", owner: "DS" }
];
稍后在代码中我通过数据进行映射,我需要显示更新的汽车值,我不确定使用哪种方法。 非常感谢任何帮助。
只需获取被迭代的 object 的索引,然后在newData
数组中查找它?
const data = [ { id: 1, car: "Toyota 2020", owner: "BM" }, { id: 2, car: "Nissan", owner: "DK" }, { id: 3, car: "Mazda", owner: "JA" }, { id: 4, car: "Ford", owner: "DS" } ]; const newData = ["Audi", "Bentley", "BMW", "Buick"]; const newCars = data.map((obj, i) => ({...obj, car: newData[i] })); console.log(newCars);
当您单击它时,您可以使用一个按钮更新所有新车值。 但用户界面不会更新。 假设您有一个初始数组,并且您想要覆盖所有汽车值,您必须使用 useState() 钩子创建一个新变量并将数据数组作为初始值。 那么在从服务器获取新车数据后,您必须执行 useeffect() 挂钩来更新 state,或者放置 settimeout() 并用它更新 state
[data,setdata]=useState(data)
useEffect(() => {
/// do whatever with the original array (data)
setTimeout(() => {
/// update the state
setdata(thenewarry)
}, 3000);
}, []);
您可以使用map over data
或newData
来实现结果
const data = [ { id: 1, car: "Toyota 2020", owner: "BM" }, { id: 2, car: "Nissan", owner: "DK" }, { id: 3, car: "Mazda", owner: "JA" }, { id: 4, car: "Ford", owner: "DS" }, ]; const newData = ["Audi", "Bentley", "BMW", "Buick"]; const result = newData.map((c, i) => { return {...data[i], car: c }; }); console.log(result);
使用 map 在 newData
const data = [ { id: 1, car: "Toyota 2020", owner: "BM" }, { id: 2, car: "Nissan", owner: "DK" }, { id: 3, car: "Mazda", owner: "JA" }, { id: 4, car: "Ford", owner: "DS" }, ]; const newData = ["Audi", "Bentley", "BMW", "Buick"]; const result = data.map((obj, i) => { return {...obj, car: newData[i] }; }); console.log(result);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.