Как синхронный однопоточный язык вообще может асинхронно выполнять задачи ?
function fetchMe() {
fetch("/api/get").then(response => console.log("Сервер ответил " + response))
console.log("Ждем ответа сервера")
}
const data = [
{"prop":{"color":{"value":10},"diametr":{"value":15},"size":{"value":2}},"name":"результат 1"},
{"prop":{"color":{"value":15},"diametr":{"value":17},"size":{"value":8}},"name":"результат 2"},
{"prop":{"color":{"value":19},"diametr":{"value":17},"size":{"value":8}},"name":"результат 3"}
]
const search = filter =>
Object.entries(filter).reduce((agg, [key, value]) =>
agg.filter(v => v.prop[key].value === value)
, data)
console.log(search({ size: 8 }).map(v => v.name)) // ["результат 2", "результат 3"]
console.log(search({ size: 8, color: 15 }).map(v => v.name)) // ["результат 2"]
let Permissions = {canView: "True", canEdit: "False", canPrint: "True"};
function Count() {
let count = 0;
for (let elem of Object.values(Permissions)) {
if (elem === "True") count++;
}
alert(count);
}
const Permissions = {canView: "True", canEdit: "False", canPrint: "True"};
const count = Object.values(Permissions).filter(v => v == "True").length
alert(count)
const checkIntersection = (obj1, obj2) =>
(
(obj1.x >= obj2.x && obj1.x <= obj2.x + obj2.w) // левая сторона первого объекта в границах второго
|| // или
(obj2.x >= obj1.x && obj2.x <= obj1.x + obj1.w) // левая сторона второго объекта в границах первого
)
&&
(
(obj1.y >= obj2.y && obj1.y <= obj2.y + obj2.h) // верхняя планка первого объекта в границах второго
|| // или
(obj2.y >= obj1.y && obj2.y <= obj1.y + obj1.h) // верхняя планка второго объекта в границах первого
)
todo.completed = !todo.completed
if (todo.id === id) return { ...todo, completed: !todo.completed }
return todo
onChange={() => props.handleChange(props.item.id, !props.item.completed)}
handleChange(id, newCompleted) {
this.setState(prevState => {
const updatedTodos = prevState.todos.map(todo => {
if (todo.id === id) {
todo.completed = newCompleted
}
return todo
})
return {
todos: updatedTodos
}
})
channel.overwritePermissions(muterole.permissions,
const mapIds = {}
const filtered = array.filter(elem => {
const existingElement = mapIds[elem.id]
if (!existingElement)
mapIds[elem.id] = elem
else
existingElement.array1.push(...elem.array1)
return !existingElement
})
const mapIds = {}
const filtered = array.filter(elem =>
(!mapIds[elem.id] && (mapIds[elem.id] = elem)) || !mapIds[elem.id].array1.push(...elem.array1)
)