【问题标题】:javascript Json : change attribute value in a json structurejavascript Json:更改json结构中的属性值
【发布时间】:2018-11-27 19:28:32
【问题描述】:

我正在尝试更改 json 中特定键的值,如下所示:

input = [{"201708":10,"201709": 12, "metric":"attritionManaged"},{"201708":10,"201709": 12, "metric":"attritionUnManaged"},{"201708":10,"201709": 12, "metric":"EHC"}]

output= [{"201708":10,"201709": 12, "metric":"managedAttrition"},{"201708":10,"201709": 12, "metric":"unmanagedAttrition"},{"201708":10,"201709": 12, "metric":"EndingHeadcount"}]

我曾尝试像input.forEach(element =>{//code})那样在输入中循环,但我缺少某处。

【问题讨论】:

标签: javascript json node.js typescript


【解决方案1】:

我使用了扩展运算符: 扩展语法允许在预期零个或多个参数(对于函数调用)或元素(对于数组字面量)的地方扩展诸如数组表达式或字符串之类的可迭代对象,或者在零个或多个参数的地方扩展对象表达式键值对(用于对象字面量)是预期的。

示例:

var a = [1,2,3]
var b = [4,5,6]
a.push(...b)
a //which is [1,2,3,4,5,6]

input = [{"201708":10,"201709": 12, "metric":"attritionManaged"},{"201708":10,"201709": 12, "metric":"attritionUnManaged"},{"201708":10,"201709": 12, "metric":"EHC"}]
	
var output = input;
output.forEach(function(currentValue, index, arr){
	currentValue.metric = getString(currentValue.metric);
})

function getString(str){
	var arr = [];
	var arr1 = [];
	var isUpperArrived = 0;
	if(str.length>0)
	{
		arr.push(str[0].toUpperCase());
	}
	
	for(var i=1;i<str.length;i++)
	{
		if(str[i]==str[i].toUpperCase())
		{
			isUpperArrived=1;
			arr1.push(str[i].toLowerCase());
		}else{
			if(!isUpperArrived)
			{
			  arr.push(str[i]);
			}else{
				arr1.push(str[i]);
			}
		}
		
	}
	//pushing arr using spread operator
	arr1.push(...arr);
	return arr1.join('');
}


console.log(output);

【讨论】:

    【解决方案2】:

    这不起作用??

    let input = [{"201708":10,"201709": 12, "metric":"attritionManaged"},{"201708":10,"201709": 12, "metric":"attritionUnManaged"},{"201708":10,"201709": 12, "metric":"EHC"}]
    
     input.forEach(i=>{
         i.metric = 'abc'
     })
    
     input.forEach(i=>{
         alert(i.metric) 
     })
    

    【讨论】:

      猜你喜欢
      • 2015-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-17
      • 1970-01-01
      相关资源
      最近更新 更多