在另一個陣列中找到相同的陣列元素,并將其重命名為遞增。在下面的腳本中,我想將相同的元素動態遞增為 1,而不需要手動輸入 "motor "來將其重命名為 "motor 1"
。舉個例子,用例
/original array。
["汽車","馬達","自行車","三輪車","馬達"]
//結果應該是。
["汽車","馬達","自行車","三輪車","馬達1"]
這是我試過的腳本
let _temparr = ["car"/span>。 "馬達","自行車","三輪車","馬達"]
let _newarr = new Array() 。
let counter = 0;
for(let i = 0 ; i < _temparr.length; i ){
//將_temparr元素推到_newarr。
for(let a = 0; a < _newarr.length; a ){
//如果_newarr是由馬達組成的,增加計數器 1并推送為 "馬達1"。
if(_newarr[i] === "motor"){
counter
_newarr.push(_temparr[i] counter)
}
}
_newarr.push(_temparr[i])
我得出的邏輯是,我將回圈_temparray并將其推送到一個新的arrau,也就是:_newarr,在_newarr的第一個回圈中,如果它在_temparray中找到相同的元素,計數器將遞增。
uj5u.com熱心網友回復:
你可以為每個詞/元素保留一個計數器,并使用.map來創建新的陣列,根據需要更新每個元素:
const counter = new Map();
console.log(
["car","motor","bicycle","tricyle","motor"] 。 map(
element => {
if (!counter.has(element)) {
counter.set(element, 1)。
return element。
}
const count = counter.get(element)。
counter.set(element, count 1)。
return element " "/span> count;
}
)
);
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
也許你可以考慮使用Map:
。const originalArray = ["car"/span>, "馬達", "自行車", "三輪車", "馬達"]。]
const newArray = [];
const counter = new Map();
originalArray.forEach(span class="hljs-params">item => {
if (counter.has(item)) {
newArray.push(`${item} ${counter.get(item)}) 。
counter.set(item, counter.get(item) 1) 。
} else {
newArray.push(item)。
counter.set(item, 1)。
}
});
console.log(newArray);
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/333296.html
標籤:
上一篇:向母體發送輸入值
下一篇:需要函式來增加日期的值
