Я не уверен, хорошо ли я понимаю, но быстрое решение:
<html>
<script>
var table = [];
console.log(table);
function findInArrAndPush(obj){
const found = table.some(el => el.issueID === obj.issueID);
if (!found) table.push(obj);
return table;
}
for(i=0;i<3;i++){
var id = i;
var objToAdd = {"executionDate":"01-01-1000",
"issueID":id,
"priority":{
"jira": "1",
"computed":"1"
},
"expectedValue":{
"jira": "2",
"computed":"2"
}
};
console.log(findInArrAndPush(objToAdd));
//ADD TO FILE HERE
}
</script>
<body>
</body>
</html>
единственное, что вам нужно сделать здесь - распечатать результат в файл.
Можно заставить stderr замолчать путем привязки его с пользовательским устройством записи:
#!/usr/bin/env python
import codecs, sys
class NullWriter:
def write(self, *args, **kwargs):
pass
if len(sys.argv) == 2:
if sys.argv[1] == '1':
sys.stderr = NullWriter()
elif sys.argv[1] == '2':
#NOTE: sys.stderr.encoding is *read-only*
# therefore the whole stderr should be replaced
# encode all output using 'utf8'
sys.stderr = codecs.getwriter('utf8')(sys.stderr)
print >>sys.stderr, u"\u20AC" # euro sign
print "ok"
Пример:
$ python silence_stderr.py
Traceback (most recent call last):
File "silence_stderr.py", line 11, in <module>
print >>sys.stderr, u"\u20AC"
UnicodeEncodeError: 'ascii' codec can't encode character u'\u20ac' in position 0: ordinal not in range(128)
Заставленный замолчать stderr:
$ python silence_stderr.py 1
ok
Закодированный stderr:
$ python silence_stderr.py 2
€
ok
Примечание: У меня есть вышеупомянутые выводы внутри emacs поэтому для эмуляции его в терминале, который Вы могли сделать:
$ python ... 2>out.txt
$ cat out.txt
Примечание: В консоли Windows (после того, как chcp 65001
тот переключатель к 'utf-8' и с truetype шрифтом (Lucida Console
)) у меня есть странные результаты:
C:\> python silence_stderr.py 2
Traceback (most recent call last):
File "silence_stderr.py", line 14, in <module>
print >>sys.stderr, u"\u20AC" # euro sign
File "C:\pythonxy\python\lib\codecs.py", line 304, in write
self.stream.write(data)
IOError: [Errno 13] Permission denied
Если шрифт не является truetype затем, исключение не повышает, но вывод является неправильным.
Perl работает на truetype шрифт:
C:\> perl -E"say qq(\x{20ac})"
Wide character in print at -e line 1.
€
Перенаправление работает хотя:
C:\>python silence_stderr.py 2 2>tmp.log
ok
C:\>cat tmp.log
€
cat: write error: Permission denied
От codecs.getwriter
документация:
Ищите кодек для данного кодирования и возвратите его класс StreamWriter или функцию фабрики. Повышения a
LookupError
в случае, если кодирование не может быть найдено.
Упрощенное представление:
class UTF8StreamWriter:
def __init__(self, writer):
self.writer = writer
def write(self, s):
self.writer.write(s.encode('utf-8'))
sys.stderr = UTF8StreamWriter(sys.stderr)
Когда stderr не перенаправляется, он берет кодирование Вашего терминала. Это все идет наружу при перенаправлении его все же. Необходимо будет использовать sys.stderr.isatty (), чтобы обнаружить, если он перенаправляется, и закодируйте соответственно.
Вы могли также просто закодировать строку ASCII, заменив unicode символы, которые не отображаются. Затем Вы не должны волноваться о том, какой терминал Вы имеете.
asciiTitle = page_title.encode("ascii", "backslashreplace")
print >>sys.stderr, "bad page title", asciiTitle
Это заменяет символы, которые не могут быть закодированы Escape обратной косой черты, т.е. \xfc
. Существуют некоторые другие опции замены также, описаны здесь: