3 回答

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊
當(dāng)您進(jìn)行拼接時(shí) - 您從數(shù)組中刪除對(duì)象,這意味著您更改了它的長(zhǎng)度以及剩余元素的索引。
所以你應(yīng)該做的是,當(dāng)你拼接時(shí),你只需通過(guò)簡(jiǎn)單地遞減你的值來(lái)“返回一次迭代” i:
// Sentences defined for the whole course
const Sentences = {
/******** ---Sentence Start--- ********/
1: {
type: 'sentence-chunk',
duration: { start: 32.281, end: 34.608 },
difficulty: 2,
clipSentence: {
threshold: 40,
reference: "Your Majesty,* they're* ready.",
expect: "expects_sentences"
},
extensions: [
{
threshold: 41,
reference: "reference_sentence",
expect: "expects_sentences"
},
{
threshold: 42,
reference: "reference_sentence",
expect: "expects_sentences"
},
{
threshold: 43,
reference: "reference_sentence",
expect: "expects_sentences"
},
],
},
/******** ---Sentence End--- ********/
/******** ---Sentence Start--- ********/
2: {
type: 'sentence-chunk',
duration: { start: 32.281, end: 34.608 },
difficulty: 2,
clipSentence: {
threshold: 40,
reference: "Your Majesty,* they're* ready.",
expect: "expects_sentences"
},
extensions: [
{
threshold: 41,
reference: "Your Highness,* they're* ready.",
expect: "expects_sentences"
},
{
threshold: 42,
reference: "Your Majesty,* the guests are* ready.",
expect: "expects_sentences"
},
{
threshold: 43,
reference: "Your Majesty,* they're* ready.",
expect: "expects_sentences"
},
],
},
/******** ---Sentence End--- ********/
}
modifySentences();
console.log(Sentences);
function modifySentences() {
for (const [key, sentence] of Object.entries(Sentences)) {
for(let i = 0; i < sentence.extensions.length; i++) {
if(sentence.extensions[i].reference === 'reference_sentence') {
console.log(i)
sentence.extensions.splice(i, 1);
--i; //here it is, you resetting index back, so you could check next object
}
}
}
}

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊
簡(jiǎn)單的數(shù)組映射和過(guò)濾方法就可以完成您的工作。
const Sentences = {
1: {
type: 'sentence-chunk',
duration: { start: 32.281, end: 34.608 },
difficulty: 2,
clipSentence: {
threshold: 40,
reference: "Your Majesty,* they're* ready.",
expect: 'expects_sentences',
},
extensions: [
{
threshold: 41,
reference: 'reference_sentence',
expect: 'expects_sentences',
},
{
threshold: 42,
reference: 'reference_sentence',
expect: 'expects_sentences',
},
{
threshold: 43,
reference: 'reference_sentence',
expect: 'expects_sentences',
},
],
},
2: {
type: 'sentence-chunk',
duration: { start: 32.281, end: 34.608 },
difficulty: 2,
clipSentence: {
threshold: 40,
reference: "Your Majesty,* they're* ready.",
expect: 'expects_sentences',
},
extensions: [
{
threshold: 41,
reference: "Your Highness,* they're* ready.",
expect: 'expects_sentences',
},
{
threshold: 42,
reference: 'Your Majesty,* the guests are* ready.',
expect: 'expects_sentences',
},
{
threshold: 43,
reference: "Your Majesty,* they're* ready.",
expect: 'expects_sentences',
},
],
},
};
const ret = Object.entries(Sentences).map(([, sentence]) => {
sentence.extensions = sentence.extensions.filter(
(x) => x.reference !== 'reference_sentence'
);
return sentence;
});
console.log(ret);

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊
你可以嘗試
function modifySentences() {
? ? for (const key of Object.keys(Sentences)) {
? ? ? if (Sentences.hasOwnProperty(key)) {
? ? ? ? ?Sentences[key].extensions = Sentences[key].extensions.filter(ext => ext.reference !== "reference_sentence")
? ? ? }
? ? }
}
需要 hasOwnProperty() 檢查,以便僅迭代您定義的那些屬性。
添加回答
舉報(bào)