Сравните элементы в функции сортировки следующим образом:
let v= c => keys.reduce((o,k) => o[k]||'',c)
return (isReverse ? -1 : 1) * v(a).localeCompare(v(b));
likte this:
sortBy = (keys, isReverse=false) => {
this.setState(prevState => ({
files: prevState.files.sort((a, b) => {
let v=c=>keys.reduce((o,k) => o[k]||'',c)
return (isReverse ? -1 : 1)*v(a).localeCompare(v(b));
})
}));
}
let files = [
{ general: { fileID: "3"}},
{ general: { fileID: "1"}},
{ general: { fileID: "2"}},
{ general: { }}
];
function sortBy(keys, arr, isReverse=false) {
arr.sort((a,b,v=c=>keys.reduce((o,k) => o[k]||'',c)) =>
(isReverse ? -1 : 1)*v(a).localeCompare(v(b)) )
}
sortBy(['general', 'fileID'],files,true);
console.log(files);
Попробуйте режим XP Mode, если у вас не получается запустить его изначально.
Думали ли вы об обновлении своих решений до vs2005,
Извините, ваша среда сборки требует одновременной работы VC 2003, 2005 и 2008? Готов поспорить, что ваши усилия будут лучше потрачены на простую консолидацию среды сборки в одну среду.
В Windows 7 в свойствах исполняемого файла есть режим совместимости. открыть: C: \ Program Files \ Microsoft Visual Studio .NET 2003 \ Common7 \ IDE \ затем щелкните правой кнопкой мыши файл devenv.exe и выберите свойства. На вкладке совместимости выберите «Запускать в режиме совместимости» и выберите «Windows XP» в раскрывающемся списке.
Попробуйте, я не уверен, сработает ли это, но попробовать стоит.
Я попытался установить VS2003 на 64-битную Windows 7 с помощью функции Virtual Windows XP. Я вполне уверен, что это будет успешно. Проблема, с которой я столкнулся, заключается в том, что установщик хочет, чтобы IIS был установлен, а установка XP, предоставляемая Virtual XP, не имеет этого по умолчанию.
Если вы перейдете в раздел «Добавить / удалить компоненты» и попытаетесь добавить его, он попросит диск, которого у меня не было под рукой. Как только я достаю диск, я
У меня есть действительно грязный и жалкий способ решения проблемы pdb.
Загрузите и запустите Sysinternals-ProceXP, нажмите CTRL-F, введите имя pdb (smt like ($ ProjectName). pdb), которые нельзя создать при компоновке. Дважды щелкните, когда он будет найден. (Если он не может быть найден, запустите процедуру с правами администратора)
Затем вы увидите, что файл .pdb выделен в нижней панели главного экрана. Щелкните его правой кнопкой мыши и выберите Close Handle. Когда вы снова попытаетесь создать свое решение, это не вызовет ошибку.
Я не знаю, можно ли написать это решение, но это по крайней мере лучше, чем перезапуск Visual Studio.
Решение, которое я нашел в Интернете, которое помогло: для вашей визуальной студии используйте совместимость приложений = windows vista SP2 и НЕ WinXP SP3
У меня такая же проблема; devenv.exe оставляет файлы pdb открытыми после запуска проекта. Я сделал командный файл, чтобы обойти это, он закрывает все файлы .pdb , открытые devenv.exe:
handle.exe .pdb | awk "/devenv.exe/ {split ($ 4, fd, \": \ "); system (\" handle.exe -c \ "fd [1] \" -y -p \ "$ 3)}"
Для работы вам потребуется handle.exe от sysinternals и awk от gnu.
Используйте на свой страх и риск. Закрытие дескрипторов может вызвать нестабильность приложения или системы.
Я использую Visual Studio 2003 на win7 с момента выпуска самой первой версии RC: S , почему у людей возникают проблемы?
Я написал запись в блоге об этом некоторое время назад, которую вы можете проверить - http://technikhil.wordpress.com/2010/01/12/visual-studio-2003-and-windows-7-can-get-along-really/
Единственное, на чем я сейчас застрял, это функциональность глобального поиска в VS 2003 - он вешает приложение. Мой обходной путь - использовать поиск в windows 7 :-). В остальном - пока все хорошо...
Обновление: я заставил поиск работать, отключив функциональность Aero - я обновил свой пост в блоге с подробностями...
У меня нет проблем с Visual Studio 2003 в 64-разрядной версии Windows 7.