用函数抓取数组元素

时间:2017-05-15 11:26:00

标签: javascript

大家好,我正在尝试将数组的每个元素作为某些对象的属性值。因此我使用的是函数,但它根本不是动态的,因为我需要在调用函数后始终指定数组的索引。

这是我的代码:

function grab(){ 
    var arr= [123456,987654]
	return arr
}

var arrayObjects= [
    {title: "miami", hash: grab()[0]},
    {title: "new york", hash: grab()[1]}
]

console.log(arrayObjects[0].hash)

另一种更有效的方法是什么?

3 个答案:

答案 0 :(得分:2)

尝试这样。直接在函数中传递值

function grab(n) {
return [123456, 987654][n];
}

var arrayObjects = [{ title: "miami" }, {  title: "new york"}]
arrayObjects.forEach((a,b)=> a['hash'] = grab(b));
console.log(arrayObjects[0].hash)

答案 1 :(得分:1)

也许这个?

function grab() {
    var arr = [123456, 987654];
    return arr;
}

var hashes = grab();
var arrayObjects = [{title: "miami"}, {title: "new york" }];

arrayObjects.forEach((item, index) => item.hash = hashes[index]);

console.log(arrayObjects[0].hash);

这是一个简单的片段。在尝试访问hashes循环内的forEach数组时,索引验证可能有助于避免超出范围异常。但这只是一个例子。

答案 2 :(得分:0)

如果您担心索引,您可能希望将arr变量转换为指定了某种ID的对象,并使用此ID调用您的hases。例如:

function grab(){
  var hashes = {
      'miami': 123456,
      'ny': 987654
  };
  return hashes;
}
var arrayObjects= [{title: "miami", hash: grab().miami}, {title: "new york", hash: grab().ny}]