只是存在一个underscoreJs方法来将具有某些属性的Object转换为具有键属性的对象集合?
我的意思是如果在 underscorejs 中存在一个简单的方法,它就等同于:
function objectToCollection(obj, propertyKey) {
return _.map(obj, function(o, key) {
b[propertyKey] = key;
return o;
});
}
var obj = {
prop1: {val:2},
prop2: {val:3},
prop3: {val:5},
prop4: {val:7}
};
objectToCollection(obj, 'name');
结果:
[
{name: 'prop1', val: 2},
{name: 'prop2', val: 3},
{name: 'prop3', val: 5},
{name: 'prop4', val: 7}
]
答案 0 :(得分:2)
您可以使用import networkx as nx
import os
import pandas as pd
data=pd.read_excel('f-e-2016-intermediate-use.xlsx')
G=nx.DiGraph()
teams=data.groupby(['reportercode','partnercode'])
team_names=[name for name,group in teams]
G.add_edges_from(team_names)
a_node=data.groupby(['reportercode'])
source_nodes=[name for name,group in a_node]
b_node=data.groupby(['partnercode'])
target_nodes=[name for name,group in b_node]
nodes=set(source_nodes+target_nodes)
G.add_nodes_from(nodes)
page_rank=nx.pagerank(G,weight='tradevalueus')
和Object.keys
map
<强>演示强>
var output = Object.keys(obj).map( s => ({...obj[s], name:s}) )
答案 1 :(得分:0)
由于underscore's
映射(甚至所有适用于集合的方法)都可以直接在Object
上运行,因此这种转换不需要那里的额外功能。
_.map(obj)
只会将对象的所有值转换为集合
以下是您的特定情况(转换)的示例,您想在其中使用属性name
保存每个对象内的键:
var obj = {
prop1: {val:2},
prop2: {val:3},
prop3: {val:5},
prop4: {val:7}
}
var array = _.map(obj, (v, name) => ({...v, name}));
console.log(array)
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"></script>