Javascript 数组中的推送对象,每个$
也许我只是瞎了眼,但我现在挣扎了很长时间: 我这里有一小段JS代码:Javascript 数组中的推送对象,每个$,javascript,jquery,Javascript,Jquery,也许我只是瞎了眼,但我现在挣扎了很长时间: 我这里有一小段JS代码: var linkInput = $('#Link input.gwt-TextBox').val(); var parentRow = $('#Link').parent().parent(); var links = linkInput.split("|"); // hide text-input $(parentRow).hide(); // get rid of empty elements links = link
var linkInput = $('#Link input.gwt-TextBox').val();
var parentRow = $('#Link').parent().parent();
var links = linkInput.split("|");
// hide text-input
$(parentRow).hide();
// get rid of empty elements
links = links.filter(Boolean);
var aSites = [];
var oSite = {};
$(links).each(function (k, v) {
splits = v.split(".");
domainName = splits[1];
oSite.name = domainName;
oSite.url = v;
aSites.push(oSite);
});
console.log(aSites);
要指定:获取输入
-字段的值,随后隐藏行并保存对象中的所有值,然后将其推入数组
该参数取自google Chrome的console选项卡:
var links = ["www.myshop1.de/article/1021581", "https://www.myshop2.de/article/1021581"] [type: object]
我想,我迭代了这个对象的所有元素(在这种情况下是2次),将值推到一个对象中,然后将对象推到一个数组中,以便以后能够访问所有元素
然而,在某个时刻,我似乎覆盖了以前的值,因为我的输出如下所示:
0: {name: "myshop1", url: "https://www.myshop1.de/1021581"}
1: {name: "myshop2", url: "https://www.myshop2.de/1021581"}
length: 2
__proto__: Array(0)
我的错在哪里?有没有更聪明的方法来实现这一点
旁注:
我试图只使用一个数组(不添加对象),但似乎我
不能像这样使用关联键:
var myKey = "foo";
var myValue = "bar";
myArray[myKey] = myValue
您应该移动此项:
var oSite = {};
…在它下面的每个回调中,因为每次迭代都需要一个新对象
否则,您将一次又一次地对同一对象进行变异,将同一对象反复推送到aSites
数组中,最终导致对同一对象的多个引用
不相关,但您可以使用$.map
创建数组(或使用links.map()
):
您应该移动此项:
var oSite = {};
…在它下面的每个回调中,因为每次迭代都需要一个新对象
否则,您将一次又一次地对同一对象进行变异,将同一对象反复推送到aSites
数组中,最终导致对同一对象的多个引用
不相关,但您可以使用$.map
创建数组(或使用links.map()
):
唉。。我知道这是件小事。非常感谢。成功了。我会尽快接受这个答案。或者使用
asites.push({name:…,url:…})代码>叹息。。我知道这是件小事。非常感谢。成功了。我会尽快接受这个答案。或者使用asites.push({name:…,url:…})代码>