Javascript React Native:如果给定值已经存在,是否有一种简单的方法来更新所有对象值?

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

我正在尝试使用平面列表/截面列表等处理数据。。。但我想看看如果给定的值已经存在,我如何操作我的数据集

假设用户将链接传递到我的表单中,并且此链接已在数据集中,我希望能够更新其所有相关属性值:

我曾经在mongodb之类的数据库系统上做过一些工作,您可以根据id进行更新,但由于这不是一个成熟的数据系统,所以我不太确定要走哪条路。这可能很简单,我只是有脑雾

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在后台也会这样做。所以我相信你做得对