// Исходный объект
const obj: {
12345: 1,
12346: 2,
12356: 1,
12357: 1,
12360: 1,
}
// Результат
let result = {};
// Делаем из объекта массив, пригодный для преобразования в объект Map
const mapableArray = Object.entries(this.obj);
// Меняем местами ключи и значения
const mapableReversedArray = mapableArray.map(kv => [kv[1], kv[0]]);
// Создаем объект Map из обращенного массива
// При это дубликаты ключей будут перезаписаны и станут уникальными
const map = new Map(mapableReversedArray);
// Осталось только собрать целевой объект
map.forEach(function(value, key) { result[key] = value; });
// И использовать результат
console.log(result);
let result = {};
(new Map(Object.entries(this.obj).map(kv => [kv[1], kv[0]])))
.forEach(function(value, key) { result[key] = value; });
console.log(result);
let result = Array.from(
(new Map(Object.entries(this.obj).map(kv => [kv[1], kv[0]])))
).reduce((acc, v) => { acc[v[1]] = v[0]; return acc; }, {});
function groupProps(obj) {
const sums = {};
const result = {};
for (let p in obj) {
const key = p.substring(0, 4); // группируем по первым 4 символам
if (!sums.hasOwnProperty(key)) {
sums[key] = 0;
result[p] = 0;
}
sums[key] += obj[p];
}
for (let p in result) {
const key = p.substring(0, 4);
result[p] = sums[key];
}
return result;
}
groupProps(obj) // {"12345":3,"12356":2,"12360":1}
Object.fromEntries(Object
.entries(obj)
.sort((a, b) => a[0] - b[0])
.reduce((acc, [ k, v ], i, a) => (
i && k - a[~-i][0] === 1 || acc.push([ k, 0 ]),
acc[~-acc.length][1] += v,
acc
), [])
)
const arr = [
{
city: 'NEW YORK',
lat: 40.718758,
long: -73.986427,
},
{
city: 'NEW YORK',
lat: 40.730223,
long: -73.986427,
},
{
city: 'NY',
lat: 40.72775,
long: -73.980396,
},
{
city: 'CLINTON',
lat: 38.739765,
long: -76.912096,
},
]
placed = 0;
for(let data of arr){
let cardinals = ~~data.lat +''+ ~~data.long;
let x = arr.find(o => o.cardinals === cardinals);
data.cardinals = cardinals;
if(typeof(x) === 'undefined'){
placed += 1;
}
data.placed = placed;
}
console.log(arr);
'строка'.replace(/[\[\]\(\)\/\.\$\*\+\|\^]/g,'\\$&'); // v3.0
const text = ':)test'
const reg = new RegExp(text.replace(/[\[\\\\/^\$\.\|\?\*\+\(\)\]]/g,'\\$&'), 'g'),
const arr = [
{ val: 1, from: 0, to: 4 },
{ val: 2, from: 0, to: 6 },
{ val: 3, from: 3, to: 8 },
{ val: 4, from: 3, to: 10 },
{ val: 5, from: 6, to: 15 }];
const result = arr.reduce((acc,v)=>{
if(!acc.dict[v.from]){
acc.dict[v.from] = {idx:acc.cur, to:v.to};
acc.arr[acc.cur] = v.val;
acc.cur += 1;
}else{
const info = acc.dict[v.from];
if(v.to>info.to){
acc.arr[info.idx] = v.val;
}
}
return acc;
}, {
dict:{},
arr:[],
cur: 0,
}).arr;
const filterItem = (list, item) =>
list.map(n => ({
...n,
items: n.items.filter(m => m.id !== item.id),
}));
function removeItem(list, { id }) {
list.forEach(({ items: n }) => {
n.splice(0, n.length, ...n.filter(m => m.id !== id));
});
}
const toObj = (arr) => arr.reduce((a, b) => ({ ...a, ...b }));
'template' => '<p class="navbar-btn" style="padding-left: 25px;"><a href="{url}" class="btn btn-default2">{label}</a></p>'
NavBar::begin([
'brandLabel' => Html::img('/images/logo.png', ['alt' => Yii::$app->name]) . 'Ваш текст',
// остальной код
]);