如何使用 javascript 添加特定对象?
How can I add a specific object with javascript?
我有一个这样的数组:
当我找到 'finished' 时,我将其拆分,我想显示每个具有 'Getting' 的字符串,他的链接具有 'HTTP_404'
我的代码是:
var input = ['urlGettingF', '├─BROKEN─aquaHTTP_404', '├─BROKEN─url1HTTP_404', 'ok', 'urlok', 'Finished',
'urlGettingF2', '├─BROKEN─url1HTTP_404', '├─BROKEN─url21HTTP_404', 'Finished',
'urlGettingF3', 'url3ok', 'ok', 'Finished',
'urlGettingF4', 'url4ok', 'ok', 'Finished'
];
var inputDecouped = [];
let Test=[];
let start = '';
let pageGetting='';
let liens =[];
let pages=[];
let ok= false;
let reference = {};
let grouped = {};
// Fonction pour la découpe du input en plusieurs tableaux selon Finished
function ArrayToMultipleArrays(array) {
let result = [[]];
let index = 0;
array.forEach((x, i) => {
//console.log(index, i, x)
// On va mettre les tableaus selon la valeur de x
result[index].push(x);
if ((i + 1) < array.length && x.includes('Finished')) {
index++;
result[index] = [];
}
});
return result
}
inputDecouped = ArrayToMultipleArrays(input);
for(let i=0; i<inputDecouped.length; i++){
for(let k = 0 ; k< inputDecouped[i].length; k++ ){
if(inputDecouped[i][k].indexOf('Getting') > -1 || inputDecouped[i][k].indexOf('HTTP_404') > -1 ){
if(inputDecouped[i][k].indexOf('Getting') > -1 ){
start = inputDecouped[i][k];
pageGetting = start;
ok= true
//pages.push(({id:i, page: inputDecouped[i][k]}));
}
else if(inputDecouped[i][k].indexOf('HTTP_404') > -1 ){
if(ok === true){
liens=[];
ok = false;
}
liens.push(inputDecouped[i][k]);
}
}
}
Test.push(({page:pageGetting, lien: liens}));
}
console.log(Test);
当我 运行 它时,我得到:
但是,我希望结果是:
[[object Object] {
lien: ["├─BROKEN─aquaHTTP_404", "├─BROKEN─url1HTTP_404"],
page: "urlGettingF"
}, [object Object] {
lien: ["├─BROKEN─url1HTTP_404", "├─BROKEN─url21HTTP_404"],
page: "urlGettingF2"
}]
我的 jsbin 是:https://jsbin.com/loqagekiji/edit?js,console
我该如何解决?
我试过你的 jsbin 并通过替换得到了你想要的结果
Test.push(({page:pageGetting, lien: liens}));
和
if (!ok) {
Test.push(({page:pageGetting, lien: liens}));
}
这可能会有所帮助。
var input = ['urlGettingF', '├─BROKEN─aquaHTTP_404', '├─BROKEN─url1HTTP_404', 'ok', 'urlok', 'Finished', 'urlGettingF2', '├─BROKEN─url1HTTP_404', '├─BROKEN─url21HTTP_404', 'Finished', 'urlGettingF3', 'url3ok', 'ok', 'Finished', 'urlGettingF4', 'url4ok', 'ok', 'Finished'];
let record = []
const result = input.reduce((p, c) =>
(((/^Finished$/.test(c) && /HTTP_404/.test(record[1]))
? ((p = [...p, { lien: [record[1], record[2]], page: record[0] }]), (record = []))
: (record.push(c))),
p),[])
console.log(result)
我有一个这样的数组:
当我找到 'finished' 时,我将其拆分,我想显示每个具有 'Getting' 的字符串,他的链接具有 'HTTP_404'
我的代码是:
var input = ['urlGettingF', '├─BROKEN─aquaHTTP_404', '├─BROKEN─url1HTTP_404', 'ok', 'urlok', 'Finished',
'urlGettingF2', '├─BROKEN─url1HTTP_404', '├─BROKEN─url21HTTP_404', 'Finished',
'urlGettingF3', 'url3ok', 'ok', 'Finished',
'urlGettingF4', 'url4ok', 'ok', 'Finished'
];
var inputDecouped = [];
let Test=[];
let start = '';
let pageGetting='';
let liens =[];
let pages=[];
let ok= false;
let reference = {};
let grouped = {};
// Fonction pour la découpe du input en plusieurs tableaux selon Finished
function ArrayToMultipleArrays(array) {
let result = [[]];
let index = 0;
array.forEach((x, i) => {
//console.log(index, i, x)
// On va mettre les tableaus selon la valeur de x
result[index].push(x);
if ((i + 1) < array.length && x.includes('Finished')) {
index++;
result[index] = [];
}
});
return result
}
inputDecouped = ArrayToMultipleArrays(input);
for(let i=0; i<inputDecouped.length; i++){
for(let k = 0 ; k< inputDecouped[i].length; k++ ){
if(inputDecouped[i][k].indexOf('Getting') > -1 || inputDecouped[i][k].indexOf('HTTP_404') > -1 ){
if(inputDecouped[i][k].indexOf('Getting') > -1 ){
start = inputDecouped[i][k];
pageGetting = start;
ok= true
//pages.push(({id:i, page: inputDecouped[i][k]}));
}
else if(inputDecouped[i][k].indexOf('HTTP_404') > -1 ){
if(ok === true){
liens=[];
ok = false;
}
liens.push(inputDecouped[i][k]);
}
}
}
Test.push(({page:pageGetting, lien: liens}));
}
console.log(Test);
当我 运行 它时,我得到:
但是,我希望结果是:
[[object Object] {
lien: ["├─BROKEN─aquaHTTP_404", "├─BROKEN─url1HTTP_404"],
page: "urlGettingF"
}, [object Object] {
lien: ["├─BROKEN─url1HTTP_404", "├─BROKEN─url21HTTP_404"],
page: "urlGettingF2"
}]
我的 jsbin 是:https://jsbin.com/loqagekiji/edit?js,console
我该如何解决?
我试过你的 jsbin 并通过替换得到了你想要的结果
Test.push(({page:pageGetting, lien: liens}));
和
if (!ok) {
Test.push(({page:pageGetting, lien: liens}));
}
这可能会有所帮助。
var input = ['urlGettingF', '├─BROKEN─aquaHTTP_404', '├─BROKEN─url1HTTP_404', 'ok', 'urlok', 'Finished', 'urlGettingF2', '├─BROKEN─url1HTTP_404', '├─BROKEN─url21HTTP_404', 'Finished', 'urlGettingF3', 'url3ok', 'ok', 'Finished', 'urlGettingF4', 'url4ok', 'ok', 'Finished'];
let record = []
const result = input.reduce((p, c) =>
(((/^Finished$/.test(c) && /HTTP_404/.test(record[1]))
? ((p = [...p, { lien: [record[1], record[2]], page: record[0] }]), (record = []))
: (record.push(c))),
p),[])
console.log(result)