簡體   English   中英

基於內部對象屬性值的數組操作?

[英]Array manipulation based on inner object property value?

我正在使用wordpressAPI來檢索信息並將其顯示在javascript應用程序中。 我想知道基於返回的對象中的數據操作數組的正確方法。 例如:

我得到的數據是一個包含3個對象的數組:

data = [{...}, {...}, {...}]

這些對象包含如下數據:

{ id: 1234, slug: 'slug-name', status: 'published' }

..以及更多。 但是我想知道的是如何遍歷每個對象並檢查slug ==='slug-name-2',如果是,我想將整個對象及其所有信息移至數據數組的開始。

這是一種方法

//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方法 ,那里有很多方法 ,您可以使用幾種方法的組合並以多種方式操作數組。

您可以根據條形字符串對其進行排序

 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); 

您可以通過許多不同的方式執行此操作,一種方式是對給定的鍵和值對數組進行“偽排序”:

 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); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM