Javascript 在包含连续数字的数组中查找未知数字
我有一个这样的数组Javascript 在包含连续数字的数组中查找未知数字,javascript,Javascript,我有一个这样的数组 var specialOne = 3; var array = [{value:"special"},{value:"1"},{value:"2"},{value:"specialOne"},{value:"4"},{value:"special"}]; 我需要把它转换成这个数组 var temp = [{value:"0"},{val
var specialOne = 3;
var array = [{value:"special"},{value:"1"},{value:"2"},{value:"specialOne"},{value:"4"},{value:"special"}];
我需要把它转换成这个数组
var temp = [{value:"0"},{value:"1"},{value:"2"},{value:"3"},{value:"4"},{value:"5"}];
特殊的
应替换为适当的值
specialOne
应替换为给定的编号
我该怎么做
更多示例:
0,special,2,special,4,5 => 0,1,2,3,4,5
7,8,9,special => 7,8,9,10
special,special,10 => 8,9,10
也许这就是你想要的
var=3;
var array1=[{value:“特殊”},{value:“1”},{value:“2”},{value:“特殊”},{value:“特殊”},{value:“特殊”}];
函数addspec(specialOne){
数组1.forEach((o,i)=>{
如果(o.value==“specialOne”)o.value=specialOne.toString()
如果(o.value==“特殊”)o.value=array1[i-1]?(parseInt(array1[i-1].value)+1.toString():“0”
})
}
增补规范(3)
console.log(array1)
这可能会对您有所帮助
var=3;
变量数组=[
{value:“特殊”},
{value:“1”},
{value:“2”},
{value:“specialOne”},
{value:“4”},
{value:“特殊”}
];
对于(i=0;i
for(设i=0;i
当需要修改数组时,应首先尝试使用“for”循环。它是最有效的,因为它不会修改数组的索引,也不会返回新数组(假设您必须在数组中修改10000项…)
这里很简单,你就是数组,如果条件匹配,你就修改数组本身的值
var=3;
变量数组=[{
价值:“特别”
}, {
值:“1”
}, {
值:“2”
}, {
价值观:“特别孤独”
}, {
值:“4”
}, {
价值:“特别”
}];
函数getValues(数组){
设反同步=0;
让回溯检查=[];
让流入=假;
让backCheckOnce=false;
返回数组.map((m,i)=>{
if(isNaN(parseInt(m.value))){
if(流入| |窗口[m.值]){
m、 value=”“+(窗口[m.value]| |(反同步+1));
}否则{
如果(i==0){
backCheckOnce=true;
}
回溯检查。推送(m);
}
}否则{
流入=真;
//只做一次反向检查
如果(反向检查一次){
backCheck.reverse().forEach((x,idx)=>x.value=“”+(+m.value-1));
backCheckOnce=false;
}
}
反同步=+m.value;
返回m;
});
}
log(getValues(数组))代码>我不确定你想要什么-太混乱了。您可以这样做:for(var i=0;iNo,如果以5开头,则必须是示例:5,6,特殊,8=>5,6,7,8@YavuzSelimÖzmen已更新。我看到的唯一问题是对象应始终以数字开头,而不是special
或specialOne
@YavuzSelimÖzmen嘿,我还将第一个值固定为special
。使用前一定要理解代码(它可以重构)请试着详细解释一下这段代码的工作原理。
for (let i = 0; i < array.length; i++) {
if (array[i].value === "special") array[i].value = i.toString();
if (array[i].value === "specialOne") array[i].value = specialOne.toString();
};