Javascript 基于其值更新数组元素

Javascript 基于其值更新数组元素,javascript,reactjs,Javascript,Reactjs,如果我有以下数组 let array = [ {review: 'not_started', status: ''}, {review: 'not_started', status: ''}, {review: 'not_started', status: ''}, {review: 'not_started', status: ''} ] 当数组中所有元素的检查都是not_start时,我想将第一个元素的状态更新为Begin here,将其他元素的状态更新为locked。像这

如果我有以下数组

let array = [
  {review: 'not_started', status: ''},
  {review: 'not_started', status: ''},
  {review: 'not_started', status: ''},
  {review: 'not_started', status: ''}
]
当数组中所有元素的检查都是
not_start
时,我想将第一个元素的状态更新为
Begin here
,将其他元素的状态更新为locked。像这里

let array = [
  {review: 'not_started', status: 'Begin here'},
  {review: 'not_started', status: 'locked'},
  {review: 'not_started', status: 'locked'},
  {review: 'not_started', status: 'locked'}
]
let array = [
      {review: 'completed', status: 'completed'},
      {review: 'not_started', status: 'Begin here'},
      {review: 'not_started', status: 'locked'},
      {review: 'not_started', status: 'locked'}
    ]
当第一个的审核
已完成
时,将其状态更新为
已完成
,将第二个的状态更新为
此处开始
,将其他状态更新为
已锁定
,如此处所示

let array = [
  {review: 'not_started', status: 'Begin here'},
  {review: 'not_started', status: 'locked'},
  {review: 'not_started', status: 'locked'},
  {review: 'not_started', status: 'locked'}
]
let array = [
      {review: 'completed', status: 'completed'},
      {review: 'not_started', status: 'Begin here'},
      {review: 'not_started', status: 'locked'},
      {review: 'not_started', status: 'locked'}
    ]
如果完成前两个元素的检查,那么数组将如下所示

let array = [
      {review: 'completed', status: 'completed'},
      {review: 'completed', status: 'completed'},
      {review: 'not_started', status: 'Begin here'},
      {review: 'not_started', status: 'locked'}
    ]
我尝试在数组(
.map
)上循环,但无法根据查看结果确定如何更新状态

我如何在react中实现这一点

谢谢

让数组=[
{审阅:'未启动',状态:'},
{审阅:'未启动',状态:'},
{审阅:'未启动',状态:'},
{审阅:'未启动',状态:'}
]
let not_start=true;
array.forEach((项)=>{
if(item.review!=“未启动”){
未启动=错误;
}
})
如果(未启动){
array=array.map((项目,索引)=>{
如果(索引==0){
返回{review:'not_start',status:'Begin here'}
}
否则返回{review:'not_start',status:'locked'}
})
}
/////////////////////问题的第二部分/////////////////////////////

对于(让i=0;我可以请你在使用JSX的地方添加它吗?肯定有一些用户操作来更新评论和状态react和普通js没有区别,因为react只使用js映射。谢谢@Rohith Murali。我尝试将第一个元素的评论更新为completed,并将第一个元素的状态更新为completed,第二个元素的状态更新为B。)在这里注册,但它没有更新其他两个的状态。你知道为什么吗?再次感谢,但当所有这些条件(部分)都在一起时,它的更新状态锁定了所有元素。我还更新了问题,再次更新了答案,你能在哪里整理它?
 let STATUS_BEGIN = 'Begin here';
 let STATUS_LOCKED = 'locked';
 let STATUS_COMPLETE = 'completed';
 let STATUS_NOT_STARTED = 'not_started';

    function updateStatus(array) {
        var count = 0;
        array.forEach(function(e, i) {
            if (e.review == STATUS_NOT_STARTED && e.status != STATUS_BEGIN) {
                count = count + 1;
            }
            if (e.review == STATUS_COMPLETE && e.status != STATUS_COMPLETE) {
                count = count + 1;
            }
            if (e.review == STATUS_NOT_STARTED && count == 1) {

                e.status = STATUS_BEGIN;


            } else if (e.review == STATUS_COMPLETE && count == 1) {
                e.status = STATUS_COMPLETE;
                if (array[i + 1]) array[i + 1].status = STATUS_BEGIN;

            } else if (e.status != STATUS_BEGIN && e.status != STATUS_COMPLETE) {
                e.status = STATUS_LOCKED;
            }

        })
        return array;

    }

    let array = [{
            review: STATUS_NOT_STARTED,
            status: ''
        },
        {
            review: STATUS_NOT_STARTED,
            status: ''
        },
        {
            review: STATUS_NOT_STARTED,
            status: ''
        },
        {
            review: STATUS_NOT_STARTED,
            status: ''
        }
    ]

    updateStatus(array);