[英]How can I merge individual object values?
我有以下問題:
我想從SQL數據庫中讀取我的表名,然后比較它是否已經存在。 我知道這里有IF EXISTS ...的公式,但是IF不起作用..所以這是我以前的變體:
首先,我提取了filename.csv(C:\\ Users \\ Frederic \\ Desktop \\ Drag&Drop ...)之前的所有內容,然后提取了“ .csv”。 不要驚訝為什么51;)文件名太長
var filename = filePath.slice(51);
var richtigername = filename.replace(".csv","").toString();
console.log(richtigername)
這是控制台中的結果:
例如:fxbewertung
第二步,讓我顯示文件名:
connection.query('Show tables from datein', function(err, datein) {
let string = JSON.stringify(datein);
let json = JSON.parse(string);
console.log(json)
這是控制台中的結果:
[ { Tables_in_datein: 'fxbewertung' },
{ Tables_in_datein: 'kontoauszug' },
{ Tables_in_datein: 'lsreport' } ]
此外,我提取了值(SQL表的名稱):
for (var k = 0; k < json.length; k++) {
var werte = Object.values(json[k])
console.log(werte)
};
這是控制台中的結果:
[ 'fxbewertung' ]
[ 'kontoauszug' ]
[ 'lsreport' ]
現在,我不知道如何進行比較,例如對於文件fxbewertung存在一個數據庫('fxbewertung')。
我的考慮是以某種方式瀏覽各個數組..或合並然后瀏覽。 最后應該是對還是錯
PS。:可能很復雜,但是我不是真正的程序員或其他人;)
最好的祝福
弗雷德里克
假設您已完成執行查詢並按以下方式存儲數據:
const queryResult = [ { Tables_in_datein: 'fxbewertung' },
{ Tables_in_datein: 'kontoauszug' },
{ Tables_in_datein: 'lsreport' } ]
然后,您需要map
此數組以提取值並將它們存儲在單個數組中,如下所示:
const values = queryResult.map(e=>e[Object.keys(e)[0]]) // ["fxbewertung", "kontoauszug", "lsreport"]
由於要通過提供文件名來查找是非結果,因此需要使用indexOf
來實現。
const valueExists = filename => values.indexOf(filename) !== -1
之后,使用您要查找的文件名執行valueExists
:
valueExists("kontoauszug"); // true
valueExists("potato"); // false
希望這可以幫助!
您可以使用some()方法檢查該文件名是否存在表。
var tableExists = tables.some(item => item['Tables_in_datein'] === filename);
現場示例:
var tables = [{ Tables_in_datein: 'fxbewertung' }, { Tables_in_datein: 'kontoauszug' }, { Tables_in_datein: 'lsreport' } ]; var filename = 'fxbewertung'; var tableExists = tables.some(item => item['Tables_in_datein'] === filename); if (!tableExists) { // Table not found for filename. } else { // Table found. Do something. }
一個有效的解決方案是使用Array.prototype.find() 。 它從找到真實值的那一刻起將返回的位置,並且直到結束都不會迭代(除非匹配末尾存在)。
演示代碼:
const tablesArr = [ { Tables_in_datein: "fxbewertung" }, { Tables_in_datein: "kontoauszug" }, { Tables_in_datein: "lsreport" } ]; const tabletoFind = "fxbewertung"; const tableFound = tablesArr.find(item => item["Tables_in_datein"] === tabletoFind) ? true: false; console.log(tableFound); if(tableFound){ //*yes table found*/ }else{ ///*nope table not found*/ }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.