Javascript React Native:如果给定值已经存在,是否有一种简单的方法来更新所有对象值?
我正在尝试使用平面列表/截面列表等处理数据。。。但我想看看如果给定的值已经存在,我如何操作我的数据集 假设用户将链接传递到我的表单中,并且此链接已在数据集中,我希望能够更新其所有相关属性值: 我曾经在mongodb之类的数据库系统上做过一些工作,您可以根据id进行更新,但由于这不是一个成熟的数据系统,所以我不太确定要走哪条路。这可能很简单,我只是有脑雾Javascript React Native:如果给定值已经存在,是否有一种简单的方法来更新所有对象值?,javascript,arrays,reactjs,react-native,javascript-objects,Javascript,Arrays,Reactjs,React Native,Javascript Objects,我正在尝试使用平面列表/截面列表等处理数据。。。但我想看看如果给定的值已经存在,我如何操作我的数据集 假设用户将链接传递到我的表单中,并且此链接已在数据集中,我希望能够更新其所有相关属性值: 我曾经在mongodb之类的数据库系统上做过一些工作,您可以根据id进行更新,但由于这不是一个成熟的数据系统,所以我不太确定要走哪条路。这可能很简单,我只是有脑雾 const storedData = [ { url: 'google.com' username: 'usernameta
const storedData = [
{
url: 'google.com'
username: 'usernametag',
content: 'this is some content that will go on forever and ever',
thumbnail: 'https://url.jpg',
avatar: 'https://url.jpg',
media: 'https://url.mp4',
},
{
url: 'sample.com'
username: 'name',
content: 'lost content goals lets start with some content forever and ever before we can start ending this hopefully it will last forever',
thumbnail: 'https://url.jpg',
avatar: 'https://url.jpg',
media: 'https://url.mp4',
},
{
url: 'thisisurl.com'
username: 'another name',
content: 'lost content goals lets start with some content forever and ever before we can start ending this hopefully it will last forever',
thumbnail: 'https://url.jpg',
avatar: 'https://url.jpg',
media: 'https://url.mp4',
},
];
因此,如果用户提交数据,并且google.com
已经存在,我如何获取特定的对象块并更新其中的所有内容
通过这样做,我可以检查google.com是否存在:
if (!JSON.stringify(storedData).includes('google.com'))
然后我希望能够更新用户名
,内容
,缩略图
,化身
,媒体
但我不太确定这是否是最好的方法?您可以在JS中使用find()方法
const storedData = [
{
url: 'google.com',
username: 'usernametag',
content: 'this is some content that will go on forever and ever',
thumbnail: 'https://url.jpg',
avatar: 'https://url.jpg',
media: 'https://url.mp4',
},
{
url: 'sample.com',
username: 'name',
content: 'lost content goals lets start with some content forever and ever before we can start ending this hopefully it will last forever',
thumbnail: 'https://url.jpg',
avatar: 'https://url.jpg',
media: 'https://url.mp4',
},
{
url: 'thisisurl.com',
username: 'another name',
content: 'lost content goals lets start with some content forever and ever before we can start ending this hopefully it will last forever',
thumbnail: 'https://url.jpg',
avatar: 'https://url.jpg',
media: 'https://url.mp4',
},
];
let selectedObj = storedData.find(item => item.url == 'google.com')
selectedObj.username = 'hello'
console.log(storedData)
您可以使用
map
并在回调函数中检查url,如果它匹配,则返回一个新对象
let newStoredData = storedData.map(urlObject => {
if (urlObject.url === "google.com") {
return {/*new object*/}
}
else
return urlObject
}
)
在一天结束时,您必须循环检查每个对象并检查其url类型,而includes在后台也会这样做。所以我相信你做得对