我是该网站的新手,我在使用 javascript 时遇到了问题,不知道如何解决。
我有 2 个数组: 在第一个数组中,我有 index_rating 形式的元素,即第一个数字表示第二个数组中的索引,我想在其中更新评级。
我想解决这个问题,但不知道如何
let index_rating_array = ["0_1", "2_3", "3_5", "1_0"];
let preferArray = [
{prefer: "sport_swimming", rating: ""},
{prefer: "sport_tennis", rating: ""},
{prefer: "sport_running", rating: ""},
{prefer: "study_archeology", rating: ""}];
let updatedArray = [];
index_rating_array.forEach(element => {
console.log(preferArray[parseInt(element.split('_')[0])]);
console.log(Object.keys(parseInt(element.split('_')[0])));
updatedArray.push(preferArray[parseInt(element.split('_')[0])].rating = element.split('_')[1]);
});
console.log(updatedArray);
我想得到它:
[
{prefer: "sport_swimming", rating: "1"},
{prefer: "sport_tennis", rating: "0"},
{prefer: "sport_running", rating: "3"},
{prefer: "study_archeology", rating: "5"}]
答案 0 :(得分:0)
分割element
的部分后,使用第一部分作为索引到preferArray
。然后更新该元素的 rating
属性。
let index_rating_array = ["0_1", "2_3", "3_5", "1_0"];
let preferArray = [
{prefer: "sport_swimming", rating: ""},
{prefer: "sport_tennis", rating: ""},
{prefer: "sport_running", rating: ""},
{prefer: "study_archeology", rating: ""}
];
index_rating_array.forEach(element => {
let [index, rating] = element.split("_");
preferArray[index].rating = rating;
});
console.log(preferArray);
答案 1 :(得分:0)
考虑按字符串的“索引”部分对index_rating_array
进行排序,然后使用map将两个数组连接起来。
let index_rating_array = ["0_1", "2_3", "3_5", "1_0"];
let preferArray = [{
prefer: "sport_swimming",
rating: ""
},
{
prefer: "sport_tennis",
rating: ""
},
{
prefer: "sport_running",
rating: ""
},
{
prefer: "study_archeology",
rating: ""
}
];
index_rating_array.sort();
let outputArray = preferArray.map((el, idx) => ({
...el,
rating: index_rating_array[idx].slice(-1)
}));
console.log(outputArray)
这确实依赖于 index_rating_array
和 preferArray
具有相同数量的项目,并且没有项目丢失或重复。