如何根据另一个数组从一个数组中获取值?

时间:2016-08-04 17:08:42

标签: javascript arrays

所以,我试图找出一种情况,我将使用另一个数组符合特定条件的数组(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']

的观点

2 个答案:

答案 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

相关问题