Javascript 如何根据id添加值?

Javascript 如何根据id添加值?,javascript,arrays,object,Javascript,Arrays,Object,我有一个下拉框,如果有效负载没有id,它应该通过向项数组中的对象添加值“selected:true”来显示“please select”,但是如果有效负载有用户id,它应该放在该用户对象中 有效载荷前的代码 const users = { label: { text: 'Select User' }, items: [ { value: 'Please Select', text: 'Please Select', selecte

我有一个下拉框,如果有效负载没有id,它应该通过向项数组中的对象添加值“selected:true”来显示“please select”,但是如果有效负载有用户id,它应该放在该用户对象中

有效载荷前的代码

const users = {

  label: {
    text: 'Select User'
  },
  items: [
    {
      value: 'Please Select',
      text: 'Please Select',
      selected: true
    },
    {
      value: '2',
      text: 'Tom'
    },
    {
      value: '3',
      text: 'Dick'
    },
    {
      value: '4',
      text: 'Harry'
    }
  ]
} 
我希望代码如何根据传入值在有效负载后查看代码,items中的值2现在已选择:true

payload = { value : 2 }

const users = {

  label: {
    text: 'Select User'
  },
  items: [
    {
      value: 'Please Select',
      text: 'Please Select'
    },
    {
      value: '2',
      text: 'Tom',
      selected: true
    },
    {
      value: '3',
      text: 'Dick'
    },
    {
      value: '4',
      text: 'Harry'
    }
  ]
}

您可以为每个具有默认值的对象添加属性
selected
,然后尝试创建如下函数

function changeProrertyValue(valueNumber){
 for(let item of user.items){
  if(item.value===valueNumber){
   if(item.selected){
    item.selected = false;
   }else{
    item.selected = true;
   }
  }
 }
}

请注意,负载中的值不是字符串,因此我们必须转换为数字进行比较

var payload1={value:2}
var payload2={text:'Dick'}
让用户={label:{text:'Select User'},
项目:[{value:'Please Select',text:'Please Select'},{value:'2',text:'Tom',},{value:'3',text:'Dick'},{value:'4',text:'Harry'}]}
const changeUser=(用户,有效负载)=>{
users.items.forEach(item=>{
if(payload.value!==null&&+item.value====payload.value){
项目[“选定”]=真;
}else if(payload.text!==null&&item.text===payload.text){
项目[“选定”]=真;
}否则删除项目[“选定”];
})
返回用户
};
用户=变更用户(用户,付费1)
console.log(用户)
用户=变更用户(用户,付费2)
console.log(用户)
const用户={
标签:{
文本:“选择用户”
},
项目:[
{
值:'请选择',
文本:“请选择”,
所选:真
},
{
值:“2”,
短信:“汤姆”
},
{
值:“3”,
文字:“迪克”
},
{
值:“4”,
文字:“哈利”
}
]
}; 
有效载荷={value:2};
让items=users.items.map((o)=>{
如果(选择o){
删除选定的o
}
if(编号(o.value)==编号(有效载荷值)){
o、 所选=真;
}
返回o;
});
让结果={
标签:{
文本:“选择用户”
},
项目:项目
};

控制台日志(结果)你有什么问题?不清楚。你试过什么?请访问,看看有什么和。做一些研究,搜索相关话题等;如果您遇到问题,请发布一段您的尝试,记录输入和预期输出。第一段代码是它的外观,第二段代码是我希望根据payloadWell中的值处理有效负载的方式。我们可以看到您想要什么,那么现在您尝试了什么?单击编辑,单击
[]
snippet编辑器并添加相关的JS和HTML以显示您的意思