大家好,我正在尝试将数组的每个元素作为某些对象的属性值。因此我使用的是函数,但它根本不是动态的,因为我需要在调用函数后始终指定数组的索引。
这是我的代码:
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)
另一种更有效的方法是什么?
答案 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}]