javascript - 使用 .push 对对象进行分组,然后输出到字符串

标签 javascript jquery

这是一个非常菜鸟的问题,但我的愚蠢的大脑无法解决这个问题。

我有 2 个数组:

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>

我尝试了这样的合并:

var merge = [];
merge.push(catUri, catKey);

返回结果:

[[Object { catKey="Test1"}, Object { catKey="Test2"}], [Object { catUri="//test.com//test1"}, Object { catUri="//test.com//test2"}]]

这就是我开始迷失的地方(如果我还没有迷失的话)...当我尝试从推送对象获取字符串时,我不断得到一个 undefined object 。

$.each(merge, function(){
  var str = '<li><a href="' + this.catUri + '" title="' + this.catKey + '">' + this.catKey + '<\/a><\/li>';
  console.log(str);
});

返回结果:

<li><a href="undefined" title="undefined">undefined</a></li>
<li><a href="undefined" title="undefined">undefined</a></li>

循环访问普通对象会返回我预期的结果。

$.each(catKey, function(){
  var str = '<li>' + this.catKey + '</li>';
  console.log(str);
});

<li>test1</li>
<li>test2</li>

我可能没有正确合并这些对象。很感谢任何形式的帮助。

最佳答案

为什么需要合并这些数组?简单的单独迭代怎么样?

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");
}

演示: http://jsfiddle.net/Yya2m/

关于javascript - 使用 .push 对对象进行分组,然后输出到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11064191/

相关文章:

javascript - 为什么我的播放按钮不起作用?

javascript - 在 chrome 开发工具中隐藏 401 console.error 在 fetch() 调用时收到 401

javascript - jQuery dataTables 自定义排序不适用于中文数字

javascript - 如何使用 JavaScript 打开并打印浏览器窗口的内容而不显示浏览器窗口?

javascript - 无法正确运行js对象

jquery - 使用 jQuery 读取 JSON

javascript - 滚动时淡出div并淡入其他div

javascript - 使用 classList 检查 body 中的类

javascript - 简单的 jQuery 模态窗口在页面加载时不显示弹出窗口

javascript - 如何修复浏览器调整大小时 Bootstrap 导航栏固定顶部填充