4 回答

TA貢獻1794條經驗 獲得超7個贊
const oldMap = new Map([["a", "1"], ["b", "2"], ["c", "3"]]);
const array = ["a", "c"];
const newMap = new Map(array.map(key => [key, oldMap.get(key)]));
// newMap is the same as oldMap but only with keys from array
或
const oldMap = new Map([["a", "1"], ["b", "2"], ["c", "3"]]);
const array = ["a", "c"];
const newMap = new Map([...oldMap.entries()].filter(entry => array.includes(entry[0])))
// newMap is the same as oldMap but only with keys from array

TA貢獻1784條經驗 獲得超2個贊
您可以按如下方式將該函數與該函數一起使用:Object.entriesArray.prototype.map
let data = {'708335088638754946': 38772,'712747381346795670': 12051,'712747409108762694': 12792 };
let array = ["712747381346795670", "708335088638754946"];
let result = Object.entries(data)
.filter(([k]) => array.includes(k))
.map(([key,value]) => ({[key]: value}));
console.log(result);
另一種方法可能是函數Array.prototype.reduce
let data = {'708335088638754946': 38772,'712747381346795670': 12051,'712747409108762694': 12792 };
let array = ["712747381346795670", "708335088638754946"];
let result = Object.entries(data)
.reduce((a, [k, v]) => a.concat(array.includes(k) ? {[k]: v} : []), []);
console.log(result);
使用對象Map
let data = new Map([['708335088638754946', 38772],['712747381346795670', 12051], ['712747409108762694', 12792]]);
let array = ["712747381346795670", "708335088638754946"];
let result = new Map(Array.from(data.keys())
.reduce((a, k) => a.concat(array.includes(k) ? [[k, data.get(k)]] : []), []));
console.log(result.has("712747409108762694"));
console.log(result.has("708335088638754946"));
console.log(result.has("712747381346795670"));

TA貢獻1851條經驗 獲得超4個贊
const map = new Map([["a", "b"], ["c", "d"], ["e", "f"]]);
const array = ["a", "c"];
console.log(map);
for (let [prop, value] of map) {
if (array.includes(prop)) {
// collect matched items here
}
}

TA貢獻1824條經驗 獲得超5個贊
您可以只循環訪問所有條目,只將匹配的條目添加到結果中:
const result = new Map();
const array = ["712747381346795670", "708335088638754946"];
for( const [ key, value ] of input.entries() ) {
if( array.includes( key ) ) {
result.set( key, value );
}
}
添加回答
舉報