Вы можете использовать map
и reduce
следующим образом:
const item_array = [{"Email Address":"c","First Name":"a","Last Name":"b","Permission":"Training Administrator","Telephone":"d","User Group":"Company Administrator"},{"Email Address":"3","First Name":"1","Last Name":"2","Permission":"6","Telephone":"4","User Group":"5"}],
item_order = ["First Name","Last Name","Email Address","Permission","Telephone","User Group"];
const ordered = item_array.map(item =>
item_order.reduce((acc, key) => ( acc[key] = item[key], acc ), {})
);
console.log(ordered)
[ 118]
В Perl можно использовать readlink()
функция для обнаружения места назначения символьной ссылки.
Можно также использовать lstat()
функционируйте для чтения полномочий символьной ссылки (в противоположность stat()
который считает детали файла, на который указывает символьная ссылка).
Установка Actually владение на новой символьной ссылке не может быть сделано без дополнительной справки как Perl, не выставляет lchown()
системный вызов. Для этого можно использовать Perl Lchown
модуль от CPAN.
Принятие достаточных полномочий (nb: код непроверенный)
use Lchown;
my $old_link = 'path to the symlink';
my $new_link = 'path to the copy';
my $dst = readlink($old_link);
my @stat = lstat($old_link);
symlink $dst, $new_link;
lchown $stat[4], $stat[5], $new_link; # set UID and GID from the lstat() results
Вы не должны волноваться о полномочиях на символьной ссылке - они всегда появляются как -rwxrwxrwx
Модуль File::Copy::Recursive заботится об этом. По умолчанию это скопирует символьные ссылки и попытается сохранить владение.