使用下划线.js展平javascript对象数组

使用下划线.js展平javascript对象数组,javascript,jquery,arrays,object,underscore.js,Javascript,Jquery,Arrays,Object,Underscore.js,我有一个javascript对象数组,如下所示: "partners":[{"username":"fangonk","profileImg":"fangonk.jpg"}, {"username":"jane","profileImg":"jane.jpg"}, {"username":"tom_jones","profileImg":"tom.jpg"}] <h1>Username Value</h1><img

我有一个javascript对象数组,如下所示:

"partners":[{"username":"fangonk","profileImg":"fangonk.jpg"},
            {"username":"jane","profileImg":"jane.jpg"},
            {"username":"tom_jones","profileImg":"tom.jpg"}]
<h1>Username Value</h1><img src="profileImg Value here" />
我想使用下划线库输出每个数组键的值。因此,对于每个对象,我希望输出如下所示的内容:

"partners":[{"username":"fangonk","profileImg":"fangonk.jpg"},
            {"username":"jane","profileImg":"jane.jpg"},
            {"username":"tom_jones","profileImg":"tom.jpg"}]
<h1>Username Value</h1><img src="profileImg Value here" />
用户名值
对您的“源代码”有点困惑,但我认为您只是在尝试这样做:

_.each(partners, function(p) { document.write('<h1>' + p.username + '</h1>\
  <img src="' + p.profileImg + '" alt="' + p.username + '" />'); }
//substitute some DOM method (e.g. jquery().append) for document.write
编辑:

var someBiggerObject={
合作伙伴:[
{“username”:“fangonk”,“profileImg”:“fangonk.jpg”},
{“username”:“jane”,“profileImg”:“jane.jpg”},
{“用户名”:“tom_jones”,“profileImg”:“tom.jpg”}
]
};
_.each(someBiggerObject.partners,函数(p){document.write(“”+p.username+)\
'); }
//用document.write替换一些DOM方法(例如jquery().append)
对您的“源代码”有点困惑,但我认为您只是在尝试这样做:

_.each(partners, function(p) { document.write('<h1>' + p.username + '</h1>\
  <img src="' + p.profileImg + '" alt="' + p.username + '" />'); }
//substitute some DOM method (e.g. jquery().append) for document.write
编辑:

var someBiggerObject={
合作伙伴:[
{“username”:“fangonk”,“profileImg”:“fangonk.jpg”},
{“username”:“jane”,“profileImg”:“jane.jpg”},
{“用户名”:“tom_jones”,“profileImg”:“tom.jpg”}
]
};
_.each(someBiggerObject.partners,函数(p){document.write(“”+p.username+)\
'); }
//用document.write替换一些DOM方法(例如jquery().append)

正确的方法是使用.template

如果您的结构是这样的:

var list = {"partners":[ 
    {"username":"fangonk","profileImg":"fangonk.jpg"},
    {"username":"jane","profileImg":"jane.jpg"},
    {"username":"tom_jones","profileImg":"tom.jpg"}
]};
您可以创建重复项模板(注意
type=“text/html”

将循环放入模板中

<script type="text/html" id="userTemplate">
    <% _.each(partners,function(user,key,list){ %>
    <h1><%= user.username %></h1><img src='<%= user.profileImg %>' />
    <% }); %>
</script>

请注意,我使用的是lodash而不是下划线。它在大多数情况下是兼容的,但我更喜欢lodash,因为基准测试更快,而且库维护良好。

正确的方法是使用.template

如果您的结构是这样的:

var list = {"partners":[ 
    {"username":"fangonk","profileImg":"fangonk.jpg"},
    {"username":"jane","profileImg":"jane.jpg"},
    {"username":"tom_jones","profileImg":"tom.jpg"}
]};
您可以创建重复项模板(注意
type=“text/html”

将循环放入模板中

<script type="text/html" id="userTemplate">
    <% _.each(partners,function(user,key,list){ %>
    <h1><%= user.username %></h1><img src='<%= user.profileImg %>' />
    <% }); %>
</script>

请注意,我使用的是lodash而不是下划线。它在大多数情况下是兼容的,但我更喜欢lodash,因为基准测试速度更快,而且库维护良好。

Ooops-疲惫的大脑。修复。生成的数组应该是什么样的?使用
.map()
函数,通常让回调函数返回一个值,然后存储
.map()的返回值
call,它将是一个新的数组,包含函数返回的任何内容。这不是从数组或对象打印值的方式。好的,我可以看到我正在以一种奇怪的方式输出值。我已经重新构造了我的问题。Ooops-疲惫的大脑。修复了。生成的数组应该是什么样子?使用
.map()
函数,通常让回调函数返回一个值,然后存储
.map()的返回值
call,它将是一个新的数组,包含函数返回的任何内容。这不是从数组或对象打印值的方式。好的,我可以看到我正在以一种奇怪的方式输出值。我已经重新构造了我的问题。partners数组是一个更大的JSON对象中的属性,因此重新构造它可能会很困难。有吗无论如何都要完成我想要的?有没有办法先用下划线进行重组?partners数组是较大JSON对象中的一个属性,因此重组可能很困难。有没有办法完成我想要的?有没有办法先用下划线进行重组?