我有一个对象和一个数组。数组和对象都是24对/索引长。如何用数组的值替换对象的值? 这不起作用:
for (let keys of zeitFaktor.keys() ){
for (ix = 0; ix < 24; ix++){
zeitFaktor.set(keys, patientenFaktoren[ix]);
};
};
此处所有键都与数组的第一个值配对。有没有人知道如何解决这个问题?任何帮助都非常感谢。
答案 0 :(得分:0)
如果您确定zeitFaktor
包含与patientenFaktoren
相同数量的元素,则只需在单循环和迭代中使用其键:
const keys = zeitFaktor.keys();
for (let ix = 0; ix < 24; ix++) {
const key = keys.next().value;
zeitFaktor.set(key, patientenFaktoren[ix]);
}
答案 1 :(得分:0)
您只需要一个循环,而不是嵌套循环。转到一个循环机制,它也为您提供密钥的索引:
Array.from(zeitFaktor.keys(), (key, ix) =>
zeitFaktor.set(key, patientenFaktoren[ix])
);
const zeitFaktor = new Map([['a', 1], ['b', 1], ['c', 1], ['d', 1]]);
const patientenFaktoren = [15, 37, -23, 6];
Array.from(zeitFaktor.keys(), (key, ix) =>
zeitFaktor.set(key, patientenFaktoren[ix])
);
console.log([...zeitFaktor]);
&#13;
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;
zeitFaktor.keys()
返回一个迭代器,Array.from
&#34;消费&#34;。当Array.from
从该迭代器中提取每个键时,它会将其传递给回调函数。该回调函数将获得它发生的键和索引顺序。
使用短表达式语法(无大括号)将回调函数写为箭头函数(=>
)。这意味着将为每个键评估zeitFaktor.set(key, patientenFaktoren[ix])
,这将按预期修改Map。