如何将数据从对象传递到 javascript 中的新数组?

How to pass data from object into new array in javascript?

我只想发送数据对象 var arrImg 中包含的字段之一。我要推送的第一件事是 var arrImg 的图像字段,条件是 checked is true 到 crudData 上的新数组图像:{'image':[]}。然后第二个我想将 var arrImg 的字段名称推送到 crudData 上的新数组名称中:{'name':[]}。 Checked 的值首先设置为 false,但当输入复选框被点击时会变为 true。有人理解我要问的情况吗?我是 javascript 的新手。谢谢

这是我的小提琴 https://jsfiddle.net/Annisa_Lianda30/d0ber5Lu/24/

这是我的代码:

<script>
export default {
    data() {
        return{
            crudData:{
                'id': null,
                'name': [],
                'image': [],
                'arrImage': [],
            },
        }
    },

    imageUpload(e, maxItem){                    
            let input = this.$refs.uploadImage
            let file = input.files
            if(file.length > (maxItem - this.crudData.arrImage.length)){
                $('#uploadMultiFile').val('')
                alert('You can only upload max '+maxItem+' items')
            } else {
                for(let i = 0; i < file.length; i++){
                    var valueArr = this.crudData.arrImage.map(function(item){ return item.fileName })
                    var isDuplicate = valueArr.some(function(item, idx){ 
                        return item == file[i].name 
                    })
                    if (isDuplicate) {
                        alert("You've already uploaded this file")
                        continue
                    }else{
                        var arrImg = {
                            blob: URL.createObjectURL(file[i]),
                            image: file[i],
                            fileName: file[i].name,
                            checked: false,
                            name : null
                        }
                        this.crudData.arrImage.push(arrImg)
                        console.log(this.crudData.arrImage)
                    }
                }
            }
        },
        uploadImage(e){
            this.$refs.uploadImage.click()
        },
        removeImage(key){
            this.crudData.arrImage.splice(key, 1)
        }, 

}

这是我从 crudData.arrImage 得到的输出: Output Javascript

欢迎来到 SO。希望此代码片段可以帮助您找到所需的内容。

let checkedImages = this.crudData.arrImage.filter(img => img.checked)
let imageFiles = checkedImages.map(img => img.image)
let names = checkedImages.map(img => img.fileName)
console.log({ imageFiles,names })