首页 > 解决方案 > 在 JavaScript 中使用对象和数组

问题描述

我有一个对象。说它的数据。

const data = {}

我想要一个功能(让它成为doThis())。如果我打电话doThis('student' , 'James') ,那么数据应该是:

data = { student : ['James'] } 

如果我再次打电话doThis('student' , 'Peter') ,那么数据应该是:

data = { student : ['James' , 'Peter'] } 

如果我打电话doThis('planet' , 'earth'),那么数据现在应该是:

data = { student : ['James , 'Peter'] , planet: ['earth'] }

现在,如果我再次调用doThis('student' , 'Peter') ,那么应该删除 Peter,因为它已经存在于学生属性中。所以数据应该是:

data = { student : ['James'] , planet : ['earth'] }

PS:我使用以下函数解决了它。忽略useCallback,它只是一个react hook。

在此处输入图像描述

标签: javascriptarraysobject

解决方案


let data={}
function doThis(key, value){
  if(key in data === true){
  if(data[key].filter(item =>item === value).length >0){
    data[key] = data[key].filter(item =>item !== value)
  }else{
    data[key] = [...data[key], value]
  }
}else{
  data[key] = [ value]
}
 return data

}

console.log(doThis("student", "Murangaza")) 
console.log(doThis("country", "RDC")) 
console.log(doThis("student", "Hans"))


推荐阅读