Javascript 连接JSON和索引变量

Javascript 连接JSON和索引变量,javascript,node.js,reactjs,Javascript,Node.js,Reactjs,有一个输入字段,其名称为metadata.country。其功能是获取名称并进行拆分,然后将这些索引放在方括号['metadata']['country']中。我想连接JSON和索引变量以获取国家/地区。问题是当我尝试加入时,它返回[object] 代码: 你可以试试 JSON.stringifyjson+JSON.stringifyindex var json={name:John,country:USA}; var指数=['1']; console.logJSON.stringifyjso

有一个输入字段,其名称为metadata.country。其功能是获取名称并进行拆分,然后将这些索引放在方括号['metadata']['country']中。我想连接JSON和索引变量以获取国家/地区。问题是当我尝试加入时,它返回[object]

代码:

你可以试试

JSON.stringifyjson+JSON.stringifyindex var json={name:John,country:USA}; var指数=['1'];
console.logJSON.stringifyjson+JSON.stringifyindex 您不需要通过映射直接从对象获取值

让inputField_Name=metadata.country 让json={name:John,metadata:{country:USA}}; 让[meta,key]=inputField_Name.split'; let out=json[meta][key];
下面的代码段将帮助您从对象中找到数据。希望这有帮助

var inputField_Name=metadata.country var json={name:John,元数据:{country:USA}}; var targetName=inputField_Name.split'; 让copy=; const data=targetName.reduceresult,targetKey=>result[targetKey]| |{},json
console.LogDatah预期的输出是什么?它不会返回[object]。由于对字符串的隐式转换,它应该返回[object]1。您试图实现什么?请详细说明你的问题。@Tethys0你是对的!!但是我想要这个输出{name:John,country:USA}['1']@TahaFarooqui在得到这个输出后,你想要实现什么?看,你可以通过操作得到任何输出,但是每个问题都应该有一个为什么,对吗?所以为什么?正如您所看到的,它在响应{name:John,country:USA}[1]中添加了额外的引号。如果数组是三维的{name:John,metadata:{country:{city:USA}},它就不起作用了;请更新您的对象结构,它可以高达100级,但我们不能仅仅假设,您必须提及所有场景。另外,如果你对一个2级的对象得到了正确的响应,你也可以为n写。我很高兴这有帮助。我更新了一个场景的答案,如果其中一个键的值未定义或为null或未找到。目前我们正在获取值。是否可以更改该值?国家/地区:加拿大使用setState,我使用的是react。与在reduce中执行setState不同,我建议使用更新的值返回对象,然后在返回对象后再执行setState。已更新我的代码段,以在所需位置更新值,而不改变原始数组。希望这有帮助。您可以通过循环该数组来调用相同的方法。例如,`var json=[{id:1,name:John,metadata:{country:USA}},{id:2,name:Peter,metadata:{country:Africa}}]`为了应用相同的函数,可以调用像let updatedArray=json.mapdataObj=>updateValuedataObj,targetName,CANADA这样的函数。最后,UpdateArray可以用于更新状态。
//Input Fields (Html)
<input id="dataX" name="metadata.country">
<input id="dataY" name="metadata.city">

//Get ID
var inputField_Name = document.getElementById("dataX").attr['name'];

//JSON Data
var json = {name:"John",metadata:{country:"USA",city:"newyork"}};

//Split by dot
var targetName = inputField_Name.split('.');

//Convert them into square brackets
let copy='';

targetName.map(function(key, index) {
  copy +="['"+key+"']";

});

//Response copy: ['metadata']['country']
console.log(json + copy);
//Response:  [object Object]['metadata']['country']
json [1];