javascript - 使用递归搜索对对象中的数组进行排序

标签 javascript arrays node.js object

我正在尝试使用 Node.js 按 JSON 对象中的名称对每个数组进行排序。 我设法使用 Underscore.js 对数组进行排序,但是如何输入整个对象并返回完成排序的对象?

考虑递归地查找对象中的数组并对每个数组进行排序,但我该怎么做?

这是一个仅对数组进行排序的示例对象:

    var _ = require("./underscore.js")
    var jsonObject = {  "Configuration":{  
          "$":{  
             "xmlns":"http://www.example.com/"
          },
          "ApplicationInstance":{  
             "Description":"Description text here.",
             "Name":"Server1",
             "Class":"System",
             "Visibility":"System",
             "CustomerCreated":"0",
             "Active":"0",
             "IntroducedIn":{  
                "$":{  
                   "xsi:nil":"true",
                   "xmlns:xsi":"http://www.w3.org/2001/XMLSchema-instance"
                }
             },
             "Property":[  
                {  
                   "Description":"JMS publisher destination type.",
                   "Name":"jmsJBossPublisher.destinationType",
                   "Class":"System",
                   "Visibility":"System",
                   "LanguageIndependantDescriptionKey":"ActivityGateway-JMSSenderConfiguration.jmsJBossPublisher.destinationType.DESCKEY",
                   "LanguageIndependantNameKey":"ActivityGateway-JMSSenderConfiguration.jmsJBossPublisher.destinationType.NAMEKEY",
                   "CustomerCreated":"1",
                   "Active":"0",
                   "IntroducedIn":"1.1",
                   "AttributeValue":"QUEUE",
                   "AttributeDataTypeName":"String"
                },
                {  
                   "Description":"jmsConnectionFactory properties.",
                   "Name":"jmsConnectionFactory.jndiNameForJmsConnectionFactory",
                   "SecurityClass":"System",
                   "Visibility":"System",
                   "LanguageIndependantDescriptionKey":"ActivityGateway-JMSSenderConfiguration.jmsConnectionFactory.jndiNameForJmsConnectionFactory.DESCKEY",
                   "LanguageIndependantNameKey":"ActivityGateway-JMSSenderConfiguration.jmsConnectionFactory.jndiNameForJmsConnectionFactory.NAMEKEY",
                   "CustomerCreated":"1",
                   "Active":"0",
                   "IntroducedIn":"1.1",
                   "AttributeValue":"ConnectionFactory",
                   "AttributeDataTypeName":"String"
                }
             ],
             "ServerId":"1",
             "ApplicationName":"ActivityGateway",
             "InstanceID":"1"
          }
       }
    };
    console.log(_.sortBy(jsonObject.Configuration.ApplicationInstance.Property,'Name'))

最佳答案

_.sortBy 返回一个克隆数组,因此您需要覆盖以前的值。 尝试添加这一行:

jsonObject.Configuration.ApplicationInstance.Property = _.sortBy(jsonObject.Configuration.ApplicationInstance.Property,'Name')

关于javascript - 使用递归搜索对对象中的数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34196335/

相关文章:

javascript - create-react-app with node express 获取 %PUBLIC_URL%

php - Flickr API : Get list of all images with specific sizes

Python - 二维数组内计数 - OpenCV

Javascript call() & apply() vs bind()?

node.js - 如何在aws api网关中传递和访问路径参数

javascript - Passport-Facebook 和 JavaScript Facebook SDK

javascript - 在 node.js 中设置下载响应的文件名

JavaScript 不等式

JavaScript 对象 : Dynamically create properties and property names

c - 通过指针的字符串(数组)容量