Javascript 将对象分组为。推送,然后输出为字符串
这是一个非常棘手的问题,但我无法用我愚蠢的头脑来思考这个问题 我有两个阵列:Javascript 将对象分组为。推送,然后输出为字符串,javascript,jquery,Javascript,Jquery,这是一个非常棘手的问题,但我无法用我愚蠢的头脑来思考这个问题 我有两个阵列: var catUri = [ { catUri : "//test.com//test1" }, { catUri : "//test.com//test2" } ]; var catKey = [ { catKey : "test1" }, { catKey : "test2" } ]; 我正在尝试加入数组,然后从每个对象获取字符串来创建html,就像这样 <h2>Test</h
var catUri = [
{ catUri : "//test.com//test1" },
{ catUri : "//test.com//test2" }
];
var catKey = [
{ catKey : "test1" },
{ catKey : "test2" }
];
我正在尝试加入数组,然后从每个对象获取字符串来创建html,就像这样
<h2>Test</h2>
<ul>
<li><a href="//test.com//test1" title="test1">test1</a></li>
<li><a href="//test.com//test2" title="test2">test2</a></li>
</ul>
返回:
[[Object { catKey="Test1"}, Object { catKey="Test2"}], [Object { catUri="//test.com//test1"}, Object { catUri="//test.com//test2"}]]
<li><a href="undefined" title="undefined">undefined</a></li>
<li><a href="undefined" title="undefined">undefined</a></li>
这是我开始迷路的地方(如果我还没有迷路的话)。。。当我试图从push对象中获取字符串时,我总是获取一个未定义的对象
$.each(merge, function(){
var str = '<li><a href="' + this.catUri + '" title="' + this.catKey + '">' + this.catKey + '<\/a><\/li>';
console.log(str);
});
$。每个(合并,函数(){
var str='
通过普通对象循环返回我的预期结果
$.each(catKey, function(){
var str = '<li>' + this.catKey + '</li>';
console.log(str);
});
<li>test1</li>
<li>test2</li>
$。每个(catKey,function(){
var str=''+this.catKey+' ';
console.log(str);
});
测试1
测试2
我可能没有正确合并这些对象。非常感谢您的帮助
var merge = [],
i = 0;
$.each(catUri,function(){
merge.push({
catUri: catUri[i].catUri,
catKey: catKey[i].catKey
});
i++;
});
输出:
[
{
catUri: "//test.com//test1",
catKey: "test1"
},
{
catUri: "//test.com//test2",
catKey: "test2"
}
]
JSFiddle示例:因此,根据您的示例,我推断
catUri
和catKey
通过索引关联,您希望将每个位置的元素从一个合并到另一个
var merge = $.map(catUri, function(value, index) {
return $.extend(value, catKey[index]);
});
那会给你
[{catUri: '//test.com/test1', catKey: 'test1' }, {catUri: '//test.com/test2', catKey: 'test2'}]
为什么需要合并这些数组?简单的单独迭代如何
for (var i = 0; i < catUri.length; i++) {
var uri = catUri[i].catUri;
var key = catKey[i].catKey;
$("<li />").append($("<a />").attr({
title : key,
href : uri
}).text(key)).appendTo("ul");
}
for(变量i=0;i $(“”)追加($(“谢谢你的帮助愿景。应该早点在这里发布。我已经把这件事复杂化了好几个小时了……谢谢你的帮助标记。我一开始就有点太过分了,甚至不得不把它们分组。在经历了几个小时的痛苦之后,知道这件事是怎么做的还是件好事。很好,这是一种更简洁的方式……非常感谢。”。
for (var i = 0; i < catUri.length; i++) {
var uri = catUri[i].catUri;
var key = catKey[i].catKey;
$("<li />").append($("<a />").attr({
title : key,
href : uri
}).text(key)).appendTo("ul");
}