我正在使用wordpressAPI来检索信息并将其显示在javascript应用程序中。我想知道基于返回的对象中的数据操作数组的正确方法。例如:
我得到的数据是一个包含3个对象的数组:
data = [{...}, {...}, {...}]
对象包含如下数据:
{ id: 1234, slug: 'slug-name', status: 'published' }
..还有更多。但是我想知道的是如何遍历每个对象并检查slug ==='slug-name-2',如果是,我想将整个对象及其所有信息移至数据数组的开始。
答案 0 :(得分:0)
这是做到这一点的一种方式
//find index of the slug-name-2
let index = data.findIndex((x => x.slug === 'slug-name-2');
//get object
let slug = data[index];
//remove from current location
data.splice(index)
//add it to the beginning
data.unshift(slug);
我敢肯定,可以提出100多种方法,也许是更有效的方法。
看看Array.Prototype methods,那里有很多东西,您可以结合使用几种方法并以多种方式操纵数组。
答案 1 :(得分:0)
您可以根据条状字符串sort对其进行操作。
let data = [
{ id: 1234, slug: 'slug-name', status: 'published' },
{ id: 1235, slug: 'slug-name-1', status: 'published' },
{ id: 1236, slug: 'slug-name-2', status: 'published' },
{ id: 9999, slug: 'slug-name-2', status: 'published' },
{ id: 1237, slug: 'hello', status: 'published' }
];
let sortedData = data.sort((a, b) => b.slug.indexOf('slug-name-2') - a.slug.indexOf('slug-name-2'));
console.log(sortedData);
答案 2 :(得分:0)
您可以通过许多不同的方式执行此操作,一种方式是对给定键和值上的数组进行“伪排序”:
const input = [
{ id: 1234, slug: 'slug-name-0', status: 'published' },
{ id: 1234, slug: 'slug-name-1', status: 'published' },
{ id: 1234, slug: 'slug-name-2', status: 'published' },
{ id: 1234, slug: 'slug-name-3', status: 'published' },
{ id: 1234, slug: 'slug-name-4', status: 'published' }
]
const output = input.sort((a, b) => {
if (b.slug === 'slug-name-2') return 1;
return 0;
})
console.log(output);