将一个元素移动到数组的前面:Javascript
Move an element to the front of an array: Javascript
我有一组具有这种格式的对象
let arr = [ { name: "test1", id: 5}, { name: "test2", id: 6 } , { name: "test3", id: 8 } ]
现在我基本上想通过重新排列将带有 6 的项目移动到数组的前面,这样结果就变成了
let result = [ { name: "test2", id: 6 } , { name: "test1", id: 5}, { name: "test3", id: 8 } ]
我试过的
const found = arr.find((element) => {
return element.id === 6;
});
if (found) {
const [...arr, found] = arr;
return found;
} else {
return arr;
}
您可以使用Array.unshift() to add element to the beginning of the array and Array.splice()删除数组元素。
let arr = [ { name: "test1", id: 5}, { name: "test2", id: 6 } , { name: "test3", id: 8 } ]
let result = [...arr];
const index = result.findIndex(e => e.id === 6)
result.unshift(result.splice(index, 1)[0])
console.log(result);
您可以使用检查的增量对数组进行排序。
const
array = [{ name: "test1", id: 5 }, { name: "test2", id: 6 }, { name: "test3", id: 8 }];
array.sort((a, b) => (b.id === 6) - (a.id === 6));
console.log(array);
你可以利用Array.unshift
and Array.splice
。
let arr = [{name:"test1",id:5},{name:"test2",id:6},{name:"test3",id:8}]
const moveToFront = (data, matchingId) => {
//find the index of the element in the array
const index = data.findIndex(({id}) => id === matchingId);
if(index !== -1) {
//if the matching element is found,
const updatedData = [...data];
//then remove that element and use `unshift`
updatedData.unshift(...updatedData.splice(index, 1));
return updatedData;
}
//if the matching element is not found, then return the same array
return data;
}
console.log(moveToFront(arr, 6));
.as-console-wrapper {
max-height: 100% !important;
}
const array = [{ name: "test1", id: 5 }, { name: "test2", id: 6 }, { name: "test3", id: 8 }];
const sortedArray = array.sort((a, b) => (b.id === 6) - (a.id === 6)); console.log(sortedArray);
讨论了一种根据数组对象中每个项目的索引号顺序对 JavaScript 数组进行排序的简单方法。如果您想按字母顺序排序并且不需要使用 String.sort().
之类的函数创建新的字符串数组,这将很有帮助
如果您想快速解决 JavaScript 中的数组排序问题,一个可能对您有用的快速提示是 below.Remember 使用数组内置的方法始终是最佳实践语。它们旨在快速高效地工作。但是,如果您真的想按索引编号对数组进行排序并且没有字符串数组,那么这篇文章将适合您。:
String→Number:当一个函数return是一个Number值,那么JavaScript将其解释为等于代码中的Number值...该函数通过传递两个参数来使用,当它们相等时应该 return 为真,当它们不相等时应该为假 equal.In 在这种情况下,我们有点反向比较它们。我们正在检查数组中项目的 ID 以查看它们是否匹配,但我们减去一个以检查它们是否小于。这是因为当我们调用 .sort() 时,JavaScript 正在按字母顺序排序,并且值为 6 的 ID 将位于列表的末尾。因此,-1 的值将使其出现在正确的 order.If 您想要将此方法用于您的数组,然后请在下面添加评论!
您可以使用 filter
和 unshift
let arr = [{ name: "test1", id: 5 },{ name: "test2", id: 6 },{ name: "test3", id: 8 }];
let firstObject;
let result = arr.filter((value) => {
if (value.id != 6) return value;
firstObject = value;
});
result.unshift(firstObject);
console.log(result);
我有一组具有这种格式的对象
let arr = [ { name: "test1", id: 5}, { name: "test2", id: 6 } , { name: "test3", id: 8 } ]
现在我基本上想通过重新排列将带有 6 的项目移动到数组的前面,这样结果就变成了
let result = [ { name: "test2", id: 6 } , { name: "test1", id: 5}, { name: "test3", id: 8 } ]
我试过的
const found = arr.find((element) => {
return element.id === 6;
});
if (found) {
const [...arr, found] = arr;
return found;
} else {
return arr;
}
您可以使用Array.unshift() to add element to the beginning of the array and Array.splice()删除数组元素。
let arr = [ { name: "test1", id: 5}, { name: "test2", id: 6 } , { name: "test3", id: 8 } ]
let result = [...arr];
const index = result.findIndex(e => e.id === 6)
result.unshift(result.splice(index, 1)[0])
console.log(result);
您可以使用检查的增量对数组进行排序。
const
array = [{ name: "test1", id: 5 }, { name: "test2", id: 6 }, { name: "test3", id: 8 }];
array.sort((a, b) => (b.id === 6) - (a.id === 6));
console.log(array);
你可以利用Array.unshift
and Array.splice
。
let arr = [{name:"test1",id:5},{name:"test2",id:6},{name:"test3",id:8}]
const moveToFront = (data, matchingId) => {
//find the index of the element in the array
const index = data.findIndex(({id}) => id === matchingId);
if(index !== -1) {
//if the matching element is found,
const updatedData = [...data];
//then remove that element and use `unshift`
updatedData.unshift(...updatedData.splice(index, 1));
return updatedData;
}
//if the matching element is not found, then return the same array
return data;
}
console.log(moveToFront(arr, 6));
.as-console-wrapper {
max-height: 100% !important;
}
const array = [{ name: "test1", id: 5 }, { name: "test2", id: 6 }, { name: "test3", id: 8 }];
const sortedArray = array.sort((a, b) => (b.id === 6) - (a.id === 6)); console.log(sortedArray);
讨论了一种根据数组对象中每个项目的索引号顺序对 JavaScript 数组进行排序的简单方法。如果您想按字母顺序排序并且不需要使用 String.sort().
之类的函数创建新的字符串数组,这将很有帮助如果您想快速解决 JavaScript 中的数组排序问题,一个可能对您有用的快速提示是 below.Remember 使用数组内置的方法始终是最佳实践语。它们旨在快速高效地工作。但是,如果您真的想按索引编号对数组进行排序并且没有字符串数组,那么这篇文章将适合您。:
String→Number:当一个函数return是一个Number值,那么JavaScript将其解释为等于代码中的Number值...该函数通过传递两个参数来使用,当它们相等时应该 return 为真,当它们不相等时应该为假 equal.In 在这种情况下,我们有点反向比较它们。我们正在检查数组中项目的 ID 以查看它们是否匹配,但我们减去一个以检查它们是否小于。这是因为当我们调用 .sort() 时,JavaScript 正在按字母顺序排序,并且值为 6 的 ID 将位于列表的末尾。因此,-1 的值将使其出现在正确的 order.If 您想要将此方法用于您的数组,然后请在下面添加评论!
您可以使用 filter
和 unshift
let arr = [{ name: "test1", id: 5 },{ name: "test2", id: 6 },{ name: "test3", id: 8 }];
let firstObject;
let result = arr.filter((value) => {
if (value.id != 6) return value;
firstObject = value;
});
result.unshift(firstObject);
console.log(result);