Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.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-替换嵌套对象的值,而不影响整个对象_Javascript_Typescript_Object - Fatal编程技术网

JavaScript-替换嵌套对象的值,而不影响整个对象

JavaScript-替换嵌套对象的值,而不影响整个对象,javascript,typescript,object,Javascript,Typescript,Object,问题是: 我有这个功能。它从有效负载中移除所有具有空字符串作为值的KeyValue对 问题是,我想在嵌套的对象中应用它。不是整个有效载荷对象。例如: configuration: { conf1: "", conf2: "Something", conf3: "" }, resourceName: "Name" 在本例中,我希望在configurationObject中应用我的UtilityFunction。这将导致: configuration: { conf2: "Some

问题是: 我有这个功能。它从有效负载中移除所有具有空字符串作为值的KeyValue对

问题是,我想在嵌套的对象中应用它。不是整个有效载荷对象。例如:

configuration: {
  conf1: "",
  conf2: "Something",
  conf3: ""
},
resourceName: "Name"
在本例中,我希望在configurationObject中应用我的UtilityFunction。这将导致:

configuration: {
  conf2: "Something",
},
resourceName: "Name"
所以,我用了一些方法。Object.assign,rest,以便为对象提供所有外部参数,以及仅应用于配置对象的实用程序输出

我试过:

Object.assign(formValues, removeEmptyKeysUtil(formValues.configuration));
// Results in printing the values in the main object.

此外:

你能帮我解释一下我做错了什么吗?

stripeEmptyStrings函数接受原始对象和目标键。 此函数还可以处理对象的目标属性是否为,并将删除该属性,无论该属性是否为对象

常量stripEmptyStrings=对象,目标=>{ const_target=对象[目标]; 如果_target=={ 删除对象[目标] 返回对象; } 否则,如果typeof _target==对象{ Object.keys\u target.forEachk=>{ 如果_目标[k]==删除_目标[k]; } } 返回{ 对象 [目标]:_目标, } } 常数obj1={ 配置:{ 会议一:, 对话二:什么,, 会议3: }, resourceName:Name, } const result1=stripEmptyStringsobj1,配置; console.logresult1 常数obj2={ removeMe:, resourceName:Name2, } const result2=stripEmptyStringsobj2,removeMe;
console.logresult2您的答案非常正确。但我找到了另一个选择。你看,这个函数应该足够通用。因为它被用于多个地方。此外,数据是动态的,这将增加另一个难度。经过多次尝试和错误后,我使用了以下内容:Object.assign{},formValues,{configuration:removemptykeysutilformvalues.configuration},它似乎工作得很好,将来还可以用作更多嵌套对象的引用。谢谢你抽出时间。
{ formValues, ...removeEmptyKeysUtil(formValues.configuration) };
// which does not do anything