2016-02-26 73 views
-1

任何人都可以建議我一個邏輯,我必須將數據推到一個數組,然後在那裏我應該更新推送的數據。如果我使用array.push,那麼它每次都附加數據,但我只想推入一次數據並在之後進行更新。Javascript邏輯推值到陣列一次,然後更新值

+0

你在更新什麼...? –

+0

您可以迭代數組並檢查某個唯一元素字段是否已經存在新元素,然後,如果需要,則需要更新該元素。如果未找到任何發現,則需要添加元素 – MysterX

+0

我已經根據我的理解回答了您的問題。將來,請嘗試發佈任何代碼(無論是否工作)以展示您嘗試執行的操作。即使它不起作用,它通常是確定你的意圖的好方法。如果您的問題仍未解決,請考慮澄清問題,可能使用代碼,並讓我知道,以便我可以更新我的答案。 – arcyqwerty

回答

1

我不完全知道你是問什麼,但如果你試圖將一個對象添加到一個數組中,並沒有進一步追加到陣列更新...

var a = []; 
var data = {}; 
// add `data` to array `a`. 
a.push(data); 
// Update property `property` of `data` to value. 
// This also updates `a[0]`. 
data.property = 'value'; 
a[0].property2 = 'othervalue'; 
a[0].property == 'value'; // true 
data.property2 == 'othervalue'; // also true 

總之, dataa[0]指向內存中的同一個對象,並且更新到另一個將更新另一個對象。

+0

抱歉未將代碼添加到我的帖子中。但這是我在找什麼東西...從根本上我有一個onmessage事件通過window.EventSource這將發送我不斷更新從服務器..這些更新是JSON對象,我試圖添加JSON到一個錶行,我不能使用推,因爲它不斷添加行..正如我前面提到的,我應該追加一次,並在那裏更新後.. – Sai

+0

好的。所以如果你要替換整個對象,你只需要設置索引'a [i] = responseJsonObject;'其中'i'是最初存儲/推送值的索引。如果你只是更新字段,那麼你可以使用類似於答案中的代碼。 – arcyqwerty

0

您可以檢查是否有一個值在數組中存在,然後彈出從陣列中的數據,每次數據推陣

If(arr.length >= 1) 
{ 
    arr.pop(); 
} 

arr.push(data); 

OR

arr[0] = data; 

這也將工作

謝謝