按动态名称属性的值对JSON排序

路易斯·塞普尔维达·伊达尔戈

我一直在尝试做在线编码练习,练习看起来像这样:

json数组A具有一个随机数对象,该对象包含一个键和一个double值。数组A最多可以包含10000个对象。例如:A = [{{a“:2.0},{” a“:2.7},{” c“:2.0},{” b“:5.1},{” d“:2.9},{” c“: 2.0},{“ f”:2.2},{“ h”:2.1}]

另一个数组B具有一组由键执行的和运算的随机集合。这些键的值可以在A中找到。如果该键未在A中显示,则其值为零。例如:B = [“ a + b”,“ b + d + f”,“ k + z”]

您的工作是组合数组B和A,提供一个包含C的求和运算结果的数组C。结果数组必须按降序排序。结合以上示例,所得数组将为:Ex:C = [{“ b + d + f”:10.2},{“ a + b”:9.8},{“ k + z”:0}]

代码看起来像这样(请让我知道是否有更好的实现,而较小的O())

var a = [{"a": 2.0},{"a": 2.7},{"c": 2.0},{"b": 5.1},{"d": 2.9},{"c": 2.0},{"f": 2.2},{"h": 2.1}]
var b = ["a+b","b+d+f","k+z"];
var c = [];

function sumArrays(){	
	for (var sum in b){
		var keysToSum = b[sum].split("+");
		var sumatory = 0;
		for(var key in keysToSum){			
			for(var number in a){
				if(a[number].hasOwnProperty(keysToSum[key])){
					sumatory += a[number][keysToSum[key]];
				}
			}
		}

		c.push(JSON.parse("{\"" + b[sum] + "\":" + sumatory + "}"));
	}

	//c.sort(function(a,b){
	//	return a.value - b.value;
	//});
}

我无法对数组C进行排序,因为属性名称发生了变化。有任何想法吗?

谢谢 !

埃米利奥·普拉泽(Emilio Platzer)

首先,您需要一个对象的第一个值:

function firstValue(obj){
   for(var prop in obj){
      return obj[prop];
   }
}

然后用它来排序

a.sort(function(a,b){ return firstValue(a)-firstValue(b)})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

按动态或嵌套属性对数组排序

来自分类Dev

XSLT按动态属性值选择

来自分类Dev

按动态属性过滤

来自分类Dev

如何通过实体框架按动态值排序?

来自分类Dev

按动态数组 VBA 的值对 Excel 表进行排序

来自分类Dev

Mongo按动态字段排序

来自分类Dev

Elasticsearch按动态价格排序

来自分类Dev

Mongo按动态字段排序

来自分类Dev

Mongodb:获取按动态排名排序的文档

来自分类Dev

c#从其他类和方法中按动态名称调用类成员(属性,方法等)

来自分类Dev

按动态名称选择数据框

来自分类Dev

按动态生成的字段值的值选择

来自分类Dev

推力按动态排序或其他方法排序?

来自分类Dev

Newtonsoft JSON动态属性名称

来自分类Dev

如何在EntityFramework中按动态列名排序?

来自分类Dev

Laravel按动态ID数组对集合进行排序

来自分类Dev

如何在EntityFramework中按动态列名排序?

来自分类Dev

动态生成json属性值

来自分类Dev

Spring RestTemplate 动态 JSON 属性名称

来自分类Dev

使用动态属性名称解析 JSON

来自分类Dev

按名称排序属性

来自分类Dev

在Struts 2中动态生成名称和值属性

来自分类Dev

XSLT按节点名称,属性名称和属性值排序

来自分类Dev

动态属性名称串联

来自分类Dev

如何使用动态属性名称为JSON对象

来自分类Dev

动态更改json属性名称并序列化

来自分类Dev

TSQL 值的动态排序

来自分类Dev

Android使用动态键名称和值构造json

来自分类Dev

来自后端的 JSON 值上的动态模型名称