gpt4 book ai didi

javascript - 爬取 json 对象数组的最高效方法

转载 作者:行者123 更新时间:2023-12-03 03:59:55 25 4
gpt4 key购买 nike

我有一个包含大约 1000 个可能的文件扩展名及其别名的列表。结构如下所示:

var iconMap = [
{ icon: 'photoshop', extensions: ['psd'], format: 'svg' },
{ icon: 'photoshop2', extensions: ['psd'], format: 'svg', disabled: true },
{ icon: 'php', extensions: ['php1', 'php2', 'php3', 'php4', 'php5', 'php6', 'phps', 'phpsa', 'phpt', 'phtml', 'phar'], format: 'svg' }]

我想获取相应扩展名的“图标”属性。因此我想创建一个 getExtensionIcon(fileExtension) 函数,它应该返回:

var phpIcon = getExtensionIcon('php') // 'php'
var pharIcon = getExtensionIcon('phar') // 'php'
var php5Icon = getExtensionIcon('php5') // 'php'

我的问题:

我只有一些想法,效率很低,所以我很好奇你会如何实现 getExtensionicon 函数?

最佳答案

这是我的做法 - 这“预处理” iconMap 一次,创建一个对象,该对象以 extension 为键,值为 icon

var iconMap = [
{ icon: 'photoshop', extensions: ['psd'], format: 'svg' },
{ icon: 'photoshop2', extensions: ['psd'], format: 'svg', disabled: true },
{ icon: 'php', extensions: ['php1', 'php2', 'php3', 'php4', 'php5', 'php6', 'phps', 'phpsa', 'phpt', 'phtml', 'phar'], format: 'svg' }
];
var getExtensionIcon = (src => {
var extensions = src.filter(item => !item.disabled).reduce((result, item) => {
item.extensions.forEach(ext => {
result[ext] = item.icon;
});
return result;
}, {});
return ext => extensions[ext];
})(iconMap);
console.log('psd is', getExtensionIcon('psd'));
console.log('php1 is', getExtensionIcon('php1'));

关于javascript - 爬取 json 对象数组的最高效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44770093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com