Мне нужен код, который дает мне значение свойства объекта, а затем принимает оператор if, который имеет это значение, чтобы получить правильный console.log.

Массив с объектом.

var stoneData = [];
stoneData.push({type:"lineTo", point:"test", axis:{x:0, y:0}} + ' = test data 1');
stoneData.push( ' ' + {type:"moveTo", point:"test", axis:{x:0, y:0}} + ' = test data 2');
stoneData.push(' ' + {type:"quadraticCurveTo", point:"test", axis:{curveX:0, curveY:0, x:0, y:0}} + '=  test data 3');

Если заявление

    var i = 0;
if(stoneData[i].type == "moveTo" || stoneData[i].type == "lineTo" ) {
console.log('stoneData[' + i + '].type = ' + stoneData[i].type + ', stoneData[' + i + '].point = ' + stoneData[i].point + ', stoneData['+i+'].axis.x = ' + stoneData[i].axis.x + ', stoneData['+i+'].axis.y = ' + stoneData[i].axis.y);
} else if(stoneData[i].type == "quadraticCurveTo") {
  console.log('stoneData[' + i + '].type = ' + stoneData[i].type + ', stoneData[' + i + '].point = ' + stoneData[i].point + ', stoneData['+i+'].axis.curveX = ' + stoneData[i].axis.curveX + ', stoneData['+i+'].axis.curveY = ' + stoneData[i].axis.curveY + ', stoneData['+i+'].axis.x = ' + stoneData[i].axis.x + ', stoneData['+i+'].axis.y = ' + stoneData[i].axis.y);
} else {
  return console.log("something went wrong");
}
//next console.log(stoneData[i]);
 i += 1;
 if(stoneData[i].type == "moveTo" || stoneData[i].type == "lineTo" ) {
 console.log('stoneData[' + i + '].type = ' + stoneData[i].type + ', stoneData[' + i + '].point = ' + stoneData[i].point + ', stoneData['+i+'].axis.x = ' + stoneData[i].axis.x + ', stoneData['+i+'].axis.y = ' + stoneData[i].axis.y);
 } else if(stoneData[i].type == "quadraticCurveTo") {
   console.log('stoneData[' + i + '].type = ' + stoneData[i].type + ', stoneData[' + i + '].point = ' + stoneData[i].point + ', stoneData['+i+'].axis.curveX = ' + stoneData[i].axis.curveX + ', stoneData['+i+'].axis.curveY = ' + stoneData[i].axis.curveY + ', stoneData['+i+'].axis.x = ' + stoneData[i].axis.x + ', stoneData['+i+'].axis.y = ' + stoneData[i].axis.y);
 } else {
   return console.log("something went wrong");
 }

Я также пробовал другие методы.

Я не могу найти правильный способ найти (stoneData[index].type == value).

Я занимаюсь программированием меньше года, поэтому пока не очень хорошо разбираюсь в предварительных ответах.

Это новый код:

var stoneData = [];
stoneData.push({type:"lineTo", point:"test", axis:{x:0, y:0}} + ' = test data 1');
stoneData.push( ' ' + {type:"moveTo", point:"test", axis:{x:0, y:0}} + ' = test data 2');
stoneData.push(' ' + {type:"quadraticCurveTo", point:"test", axis:{curveX:0, curveY:0, x:0, y:0}} + '=  test data 3');

    function consoleTheData() {
//log the data
console.log('stoneData = ' + stoneData);
console.log('stoneData.length in index = ' + (stoneData.length - 1));
for (let i = 0; i < stoneData.length; i++) {
switch (stoneData[i].type) {
  case "moveTo":
  case "lineTo":
    console.log('stoneData[' + i + '].type = ' + stoneData[i].type + ', stoneData[' + i + '].point = ' + stoneData[i].point + ', stoneData['+i+'].axis.x = ' + stoneData[i].axis.x + ', stoneData['+i+'].axis.y = ' + stoneData[i].axis.y);
    break;
  case "quadraticCurveTo":
    console.log('stoneData[' + i + '].type = ' + stoneData[i].type + ', stoneData[' + i + '].point = ' + stoneData[i].point + ', stoneData['+i+'].axis.curveX = ' + stoneData[i].axis.curveX + ', stoneData['+i+'].axis.curveY = ' + stoneData[i].axis.curveY + ', stoneData['+i+'].axis.x = ' + stoneData[i].axis.x + ', stoneData['+i+'].axis.y = ' + stoneData[i].axis.y);
    break;
  default:
    console.log("something went wrong");
}
}
}
consoleTheData();
0
DerekPK 28 Фев 2021 в 11:22

1 ответ

Лучший ответ

Попробуйте что-то вроде этого

const stoneData = [
    { type: "moveTo", point: 112, axis: { x: 123, y: 123 } },
    { type: "lineTo", point: 112, axis: { x: 123, y: 123 } },
    { type: "moveTo", point: 112, axis: { x: 123, y: 123 } },
    { type: "quadraticCurveTo", point: 112, axis: { x: 123, y: 123 } },
    { type: "xxy", point: 112, axis: { x: 123, y: 123 } }
];


stoneData.map((stone) =>        
        switch (stone.type) {
            case "moveTo":
            case "lineTo":
                console.log("case 1 - lineTo or moveTo" );
                break;
            case "quadraticCurveTo":
                console.log("case 2 quadraticCurveTo ");
                break;
            default:
                console.log("something went wrong");
        }
}); 

Выход

case 1 - lineTo or moveTo
case 1 - lineTo or moveTo
case 1 - lineTo or moveTo
case 2 quadraticCurveTo 
something went wrong

То же самое с циклом for

for (let i = 0; i < stoneData.length; i ++) {

    switch (stoneData[i].type) {
        case "moveTo":
        case "lineTo":
            console.log("case 1 - lineTo or moveTo");
            break;
        case "quadraticCurveTo":
            console.log("case 2 quadraticCurveTo ");
            break;
        default:
            console.log("something went wrong");
    }
    
}
0
orotype 28 Фев 2021 в 09:30