我有脚本在选择框中显示下拉列表。我目前使用的脚本是
jQuery.each( dslr, function( index, dslrgp) {
var aslrp= dslrgp.aslrp;
jQuery.each( aslrp, function(index2, pslrp) {
var found = 0;
jQuery.each( dropdown, function(index3, dditem) {
if (dditem.countryname == pslrp.countryname)
{
foundit = 1;
}
});
if (foundit == 0)
dropdown.push(pslrp);
});
});
如何将此转换为纯javascript。因为如果我使用这个
dslr.forEach(function( index, dslrgp) {
var aslrp= dslrgp.aslrp;
aslrp.forEach(function(index2, pslrp) {
var found = 0;
dropdown.forEach(function(index3, dditem) {
if (dditem.countryname == pslrp.countryname)
{
foundit = 1;
}
});
if (foundit == 0)
dropdown.push(pslrp);
});
});
它不起作用。
答案 0 :(得分:1)
注意本地forEach
中参数顺序的差异 - 第一个是item的值,第二个是index。所以而不是:
aslrp.forEach(function(index2, pslrp) {
...
dropdown.forEach(function(index3, dditem) {
使用它:
aslrp.forEach(function(pslrp, index2) {
...
dropdown.forEach(function(dditem,index3) {
答案 1 :(得分:1)
您的方法签名错误。它是:
arr.forEach(function callback(currentValue, index, array) {
//your iterator
}[, thisArg]);
请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
答案 2 :(得分:1)
您使用的.forEach()
方法错误。
forEach docs
您不需要将数组作为第一个参数传递。只需通过回调。
dslr.forEach(function(dslrgp) {
// do something..
}
或使用键/值迭代
dslr.forEach(function(value, index) {
// do something..
}