mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-22 16:23:50 +02:00
72 lines
1.5 KiB
JavaScript
72 lines
1.5 KiB
JavaScript
/**
|
|
*
|
|
* @param {array} array
|
|
* @param {*} item
|
|
* @returns {boolean}
|
|
*/
|
|
function removeFromArray(array, item) {
|
|
const { length } = array;
|
|
for (let i = 0; i < length; ++i) {
|
|
if (array[i] === item) {
|
|
array.splice(i, 1);
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param {array} a
|
|
* @param {array} b
|
|
* @returns {boolean}
|
|
*/
|
|
function arraysMatch(a, b) {
|
|
if (!Array.isArray(a) || !Array.isArray(b)) {
|
|
return false;
|
|
}
|
|
return (
|
|
a.length === b.length &&
|
|
a.every(
|
|
(element, index) =>
|
|
JSON.stringify(element) === JSON.stringify(b[index])
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param {array} array
|
|
* @param {number} fromIndex
|
|
* @param {number} toIndex
|
|
* @returns {void}
|
|
*/
|
|
function moveArrayItem(array, fromIndex, toIndex) {
|
|
if (!Array.isArray(array) || fromIndex === toIndex) {
|
|
return;
|
|
}
|
|
if (fromIndex < 0 || fromIndex >= array.length) {
|
|
return;
|
|
}
|
|
if (toIndex < 0 || toIndex >= array.length) {
|
|
return;
|
|
}
|
|
const item = array[fromIndex];
|
|
array.splice(fromIndex, 1);
|
|
array.splice(toIndex, 0, item);
|
|
}
|
|
|
|
function replaceReactiveObject(target, source) {
|
|
for (const key in target) {
|
|
if (Object.prototype.hasOwnProperty.call(target, key)) {
|
|
delete target[key];
|
|
}
|
|
}
|
|
|
|
for (const key in source) {
|
|
target[key] = source[key];
|
|
}
|
|
}
|
|
|
|
export { removeFromArray, arraysMatch, moveArrayItem, replaceReactiveObject };
|