1
有沒有更好的方法做下面的事情?我想查找particles
陣列中的數據,該數據與timestamp
陣列中的搜索日期的索引/位置相匹配。Javascript - 在對象數組中搜索和匹配數據的更好方法?
我的樣本數據:
var data = {
particles: ['1.0',
'1.1',
'1.2',
'2.0',
'2.1',
'2.2',
'3.0',
'3.1'],
timestamp: ['2016-10-10',
'2016-10-10',
'2016-10-10',
'2016-10-11',
'2016-10-11',
'2016-10-11',
'2016-10-13',
'2016-10-13'],
};
我的代碼:
var find = '2016-10-11';
var lookup = {};
var timestamp = [];
var index = [];
for (var key in data.timestamp) {
if (data.timestamp[key] === find) {
timestamp.push(data.timestamp[key]);
index.push(key);
}
}
console.log(timestamp);
// --> ["2016-10-11", "2016-10-11", "2016-10-11"]
var particles = [];
for (var key in data.particles) {
// Check if the key is in the index.
if (index.indexOf(key) > -1) {
particles.push(data.particles[key]);
}
}
console.log(particles);
// --> ["2.0", "2.1", "2.2"]
lookup.particles = particles;
lookup.timestamp = timestamp;
console.log(lookup);
結果:
{
particles: [
'2.0',
'2.1',
'2.2'
],
timestamp: [
'2016-10-11',
'2016-10-11',
'2016-10-11'],
}
我將在timestamp
上千項和particles
所以我覺得在ma上方循環會在未來造成一些性能問題。
而且,我可能會在物體多個鍵期貨:
{
particles1: [...],
particles2: [...],
particles3: [...],
timestamp: [...]
}
所以我手動尋找匹配的數據可能不會去的好方法。
有什麼更好的點子?
timestamp
始終是數據中的一個固定鍵。
我更喜歡香草 Javascript解決方案。
你是什麼意思'設置得match'指數?這些陣列的共同點是什麼? – Weedoze
你是否控制瞭如何生成數組? – Sergeon
@Sergeon是的,我願意。 – laukok