所以,我试图找出一种情况,我将使用另一个数组符合特定条件的数组(b[]
)的索引号填充数组(a[]
)(数组{{ 1}}将是基于数组b
的索引号,它是一个图像数组,当宽度大于高度时会填充a
。
所以,我提出了一个假设函数,希望得到一个数组输出,我会从b
得到一个与a[]
的值对齐的列表。毋庸置疑,这两种尝试都没有带来任何有价值的东西。
b[]
这是功能范围的问题,还是我忽略了var a = ['ab', 'bc', 'cd', 'de', 'ef', 'fg', 'gh', 'hi'];
var b = [2, 4, 5];
var d = function(a, b) {
var func1 = [];
var func2 = [];
for(i = 0; i > b.length; i++) {
func1.push(a[b[i]]);
}
console.log('func1 = ' + func1); // 'func1 = []'
for(i=0; i > a.length; i++) {
if(b.indexOf(a.indexOf(a[i])) > -1) {
func2.push(a[i])
}
}
console.log('func2 = ' + func2); // 'func2 = []'
}
d(a,b) // Ideally outputs ['cd', 'ef', 'fg']
?
答案 0 :(得分:1)
for循环中的比较是向后的。它们应该是这样的:
for(i = 0; i < b.length; i++) {
func1.push(a[b[i]]);
}
console.log('func1 = ' + func1); // 'func1 = []'
for(i=0; i < a.length; i++) {
if(b.index(a.indexOf(a[i])) > 1) {
func2.push(a[i])
}
}
另外,b.index不是一个函数。我假设你的意思是indexOf:
var a = ['ab', 'bc', 'cd', 'de', 'ef', 'fg', 'gh', 'hi'];
var b = [2, 4, 5];
var d = function(a, b) {
var func1 = [];
var func2 = [];
for(i = 0; i < b.length; i++) {
func1.push(a[b[i]]);
}
console.log('func1 = ' + func1); // 'func1 = []'
for(i=0; i < a.length; i++) {
if(b.indexOf(a.indexOf(a[i])) > 1) {
func2.push(a[i])
}
}
console.log('func2 = ' + func2); // 'func2 = []'
}
d(a,b) // Ideally outputs ['cd', 'ef', 'fg']
输出:
func1 = cd,ef,fg
func2 = fg
答案 1 :(得分:0)
使用for(i=0; i < a.length; i++)
代替!正确的语法是成功的关键!谢谢@Superdrac