Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Spread运算符指定对象中数组内的数据_Javascript_Spread Syntax - Fatal编程技术网

Javascript Spread运算符指定对象中数组内的数据

Javascript Spread运算符指定对象中数组内的数据,javascript,spread-syntax,Javascript,Spread Syntax,我需要使用扩展运算符更新以下状态内的数据。 必须这样做,即数据[0]应更新为“vehOn”:“Finance” 修改后的状态应类似于: let modifiedstate = { "data": [{ "year": "2017", "make": "ALFA ROMEO", "model": "ILX 4D 2.0 PREMIUM PACKAGE", "vehOn": "Finance" }], "error": "" }; 据我所知,实现您的目标

我需要使用扩展运算符更新以下状态内的数据。 必须这样做,即
数据[0]
应更新为
“vehOn”:“Finance”

修改后的状态应类似于:

let modifiedstate = {
  "data": [{
    "year": "2017",
    "make": "ALFA ROMEO",
    "model": "ILX 4D 2.0 PREMIUM PACKAGE",
    "vehOn": "Finance"
  }],
  "error": ""
};
据我所知,实现您的目标的唯一方法是:

let state={
“数据”:[{
“年份”:“2017年”,
“制造”:“阿尔法罗密欧”,
“型号”:“ILX 4D 2.0高级套装”
}],
“错误”:”
};
让modifiedstate={“data”:[{…state.data[0],…{vehOn:“Finance”}}],
“错误”:“};

console.log(modifiedstate)
如果您打算创建一个与state相同的对象,而您不知道state可以具有哪些属性,那么您应该寻找一种方法

否则,如果您完全确定
state
的结构,并希望执行简单克隆,则可以执行以下操作:

   let modifiedstate = "data": [{
     ...state.data[0],
     "vehOn": "Finance"
     }],
     "error": ""
   }
const state={
“数据”:[{
“年份”:“2017年”,
“制造”:“阿尔法罗密欧”,
“型号”:“ILX 4D 2.0高级套装”
}],
“错误”:”
};
console.log(“----状态----”;
console.log(状态);
const modifiedstate={…state,
数据:state.data.map((条目,i)=>i==0?({…条目,
韦洪:“金融”
}):输入)
};
console.log(“----modifiedstate----”;

console.log(modifiedstate)“我需要…使用扩展运算符”-为什么?请正确设置问题/代码的格式?到目前为止,您尝试了什么?…可能…modifiedstate.data[0][“vehOn”]=“Finance”?@gaetanoM我正在尝试使用spread运算符完成它。@Andreas我尝试了以下实现,但没有按预期工作。:(让oldData=state.data[0];让newData={'vehOn':'finance'};让mergedData={…oldData,…newData};让mergedState1={…state.data,…mergedData};//不起作用让mergedState2={…state,data:[…state.data,mergedData]};//不起作用,但为什么需要使用扩展运算符?如果您打算克隆
状态
,您应该知道扩展运算符不会进行浅拷贝。
   let modifiedstate = "data": [{
     ...state.data[0],
     "vehOn": "Finance"
     }],
     "error": ""
   }